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
.