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<___H, ___T> ClientProtocol<___H, ___T> for Resolverwhere
___H: ResolverClientHandler<___T> + Send,
___T: Transport,
<Resolve as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,
impl<___H, ___T> ClientProtocol<___H, ___T> for Resolverwhere
___H: ResolverClientHandler<___T> + Send,
___T: Transport,
<Resolve as Method>::Response: Decode<<___T as Transport>::RecvBuffer>,
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 From<Resolver> for ResolverMarker
impl From<Resolver> for ResolverMarker
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>
.