fdf_component

Struct ZirconServiceOffer

Source
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>

Source

pub fn new() -> Self
where 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.

Source

pub fn new_marker(_marker: S) -> Self
where 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.

Source

pub fn add_default_named<O: ServiceObjTrait, F, SR>( self, fs: &mut ServiceFs<O>, name: impl Into<String>, f: F, ) -> Self
where F: Fn(SR) -> O::Output + Clone, SR: ServiceRequest<Service = S>, FidlServiceMember<F, SR, O::Output>: Into<O>,

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]).

Source

pub fn add_named<O: ServiceObjTrait, F, SR>( self, fs: &mut ServiceFs<O>, name: impl Into<String>, f: F, ) -> Self
where F: Fn(SR) -> O::Output + Clone, SR: ServiceRequest<Service = S>, FidlServiceMember<F, SR, O::Output>: Into<O>,

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.

Source

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.

Source

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.

Source

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> IntoAny for T
where T: 'static + Send + Sync,

§

fn into_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Cast the given object into a dyn std::any::Any.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more