pub struct Resolver;
Expand description
The type corresponding to the Resolver protocol. An interface for resolving names to executables and library loaders.
An executable itself is often not sufficient to create a working process
because many executables also load shared libraries. On Fuchsia, there is no
global pool of shared libraries. Instead, every process has an associated
fuchsia.ldsvc.Loader
, which provides access to a private pool of shared
libraries appropriate for that process.
This interface provides a protocol for resolving a name into both the
zx.Handle:VMO
for the executable and the fuchsia.ldsvc.Loader
for its
associated shared libraries.
This interface is rarely used directly. Instead, fdio_spawn
and
fdio_spawn_etc
use this interface internally when they try to run a file
with a #!resolve
directive.
Trait Implementations§
Source§impl ClientCompatFrom<ResolverProxy> for Resolver
impl ClientCompatFrom<ResolverProxy> for Resolver
Source§fn client_compat_from(proxy: ResolverProxy) -> Client<Self, Channel>
fn client_compat_from(proxy: ResolverProxy) -> Client<Self, Channel>
proxy
into a Client
for this protocol.Source§impl CompatFrom<Resolver> for ResolverMarker
impl CompatFrom<Resolver> for ResolverMarker
Source§fn compat_from(_: Resolver) -> Self
fn compat_from(_: Resolver) -> Self
value
into a value of this type.Source§impl CompatFrom<ResolverMarker> for Resolver
impl CompatFrom<ResolverMarker> for Resolver
Source§fn compat_from(_: ResolverMarker) -> Self
fn compat_from(_: ResolverMarker) -> Self
value
into a value of this type.Source§impl Discoverable for Resolver
impl Discoverable for Resolver
Source§const PROTOCOL_NAME: &'static str = "fuchsia.process.Resolver"
const PROTOCOL_NAME: &'static str = "fuchsia.process.Resolver"
Source§impl<___H, ___T> DispatchClientMessage<___H, ___T> for Resolverwhere
___H: ResolverClientHandler<___T> + Send,
___T: Transport,
<Resolve as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,
impl<___H, ___T> DispatchClientMessage<___H, ___T> for Resolverwhere
___H: ResolverClientHandler<___T> + Send,
___T: Transport,
<Resolve as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,
Source§impl<___H, ___T> DispatchServerMessage<___H, ___T> for Resolverwhere
___H: ResolverServerHandler<___T> + Send,
___T: Transport,
<Resolve as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,
impl<___H, ___T> DispatchServerMessage<___H, ___T> for Resolverwhere
___H: ResolverServerHandler<___T> + Send,
___T: Transport,
<Resolve as Method>::Request: Decode<<___T as Transport>::RecvBuffer>,
Source§async fn on_one_way(
handler: &mut ___H,
sender: &ServerSender<Self, ___T>,
ordinal: u64,
buffer: ___T::RecvBuffer,
)
async fn on_one_way( handler: &mut ___H, sender: &ServerSender<Self, ___T>, ordinal: u64, buffer: ___T::RecvBuffer, )
Source§async fn on_two_way(
handler: &mut ___H,
sender: &ServerSender<Self, ___T>,
ordinal: u64,
buffer: ___T::RecvBuffer,
responder: Responder,
)
async fn on_two_way( handler: &mut ___H, sender: &ServerSender<Self, ___T>, ordinal: u64, buffer: ___T::RecvBuffer, responder: Responder, )
Source§impl<___T> Protocol<___T> for Resolverwhere
___T: Transport,
impl<___T> Protocol<___T> for Resolverwhere
___T: Transport,
Source§type ClientSender = ResolverClientSender<___T>
type ClientSender = ResolverClientSender<___T>
#[repr(transparent)]
wrapper around
ClientSender<T>
.Source§type ServerSender = ResolverServerSender<___T>
type ServerSender = ResolverServerSender<___T>
#[repr(transparent)]
wrapper around
ServerSender<T>
.