pub struct ZirconServiceOffer<S> { /* private fields */ }
Expand description
A builder for creating Offer
-compatible values for crate::NodeBuilder::add_offer
that
service a zircon fidl service.
The methods on this that start with add_
are helpers that will both register a service handler
with a [ServiceFs
] and register the instance name in the structure. If you’re handling adding
your service handlers to the outgoing directory yourself, you can just use the non-add_
methods to register them.
If no calls to add any instances are made, then when this is transformed into a service offer it will be as if a single default instance with the default name was added.
Implementations§
Source§impl<S> ZirconServiceOffer<S>
impl<S> ZirconServiceOffer<S>
Sourcepub fn new() -> Selfwhere
S: ServiceMarker,
pub fn new() -> Selfwhere
S: ServiceMarker,
Builds an offer for a zircon transport service based on the [ServiceMarker
] for S
.
If the compiler can’t deduce the type of S
(which may be the case if you’re not using the
add_
methods to add to a [ServiceFs
] at the same time), you can use Self::new_marker
to make it explicit.
Sourcepub fn new_marker(_marker: S) -> Selfwhere
S: ServiceMarker,
pub fn new_marker(_marker: S) -> Selfwhere
S: ServiceMarker,
Builds an offer for a zircon transport service based on the given [ServiceMarker
].
This is mostly useful if the compiler can’t derive the type of S
on its own.
Sourcepub fn add_default_named<O: ServiceObjTrait, F, SR>(
self,
fs: &mut ServiceFs<O>,
name: impl Into<String>,
f: F,
) -> Self
pub fn add_default_named<O: ServiceObjTrait, F, SR>( self, fs: &mut ServiceFs<O>, name: impl Into<String>, f: F, ) -> Self
Adds the given service instance to this offer and to the [ServiceFs
] passed in, using the
generator function f
. The type of the service will be derived from the result of the
generator function and it will be added with the name name
which will be mapped to the
default instance name to child components ([DEFAULT_SERVICE_INSTANCE
]).
Sourcepub fn add_named<O: ServiceObjTrait, F, SR>(
self,
fs: &mut ServiceFs<O>,
name: impl Into<String>,
f: F,
) -> Self
pub fn add_named<O: ServiceObjTrait, F, SR>( self, fs: &mut ServiceFs<O>, name: impl Into<String>, f: F, ) -> Self
Adds the given service instance to this offer and to the [ServiceFs
] passed in, using the
generator function f
. The type of the service will be derived from the result of the
generator function and it will be added with the name name
.
Sourcepub fn named_default_instance(self, name: impl Into<String>) -> Self
pub fn named_default_instance(self, name: impl Into<String>) -> Self
Adds the named instance as the default
instance of this service offer (as specified
by [DEFAULT_SERVICE_INSTANCE
]). If you are only offering a single instance that is
already called default
, you do not need to call this.
Sourcepub fn named_instance(self, name: impl Into<String>) -> Self
pub fn named_instance(self, name: impl Into<String>) -> Self
Adds the named instance to the offer without mapping it to the default instance name. You can use this to add additional instances offered in your outgoing directory.
Sourcepub fn build(self) -> Offer
pub fn build(self) -> Offer
Finalize the construction of the Offer
object for use with
super::NodeBuilder::add_offer
.
Auto Trait Implementations§
impl<S> Freeze for ZirconServiceOffer<S>
impl<S> RefUnwindSafe for ZirconServiceOffer<S>where
S: RefUnwindSafe,
impl<S> Send for ZirconServiceOffer<S>where
S: Send,
impl<S> Sync for ZirconServiceOffer<S>where
S: Sync,
impl<S> Unpin for ZirconServiceOffer<S>where
S: Unpin,
impl<S> UnwindSafe for ZirconServiceOffer<S>where
S: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<T> IntoAny for T
impl<T> IntoAny for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more