sandbox/fidl/
instance_token.rs1use crate::WeakInstanceToken;
6use fidl::handle::{EventPair, Signals};
7use zx::Koid;
8use {fidl_fuchsia_component_sandbox as fsandbox, fuchsia_async as fasync};
9
10impl crate::RemotableCapability for WeakInstanceToken {}
11impl crate::fidl::IntoFsandboxCapability for crate::WeakInstanceToken {
12 fn into_fsandbox_capability(self, _token: WeakInstanceToken) -> fsandbox::Capability {
13 panic!("unsupported");
14 }
15}
16
17impl WeakInstanceToken {
18 async fn serve(server: EventPair) {
19 fasync::OnSignals::new(&server, Signals::OBJECT_PEER_CLOSED).await.ok();
20 }
21
22 pub fn register(self, koid: Koid, server: EventPair) {
23 crate::fidl::registry::insert(self.into(), koid, WeakInstanceToken::serve(server));
24 }
25}