pub struct UseProtocol {
pub source: Option<Ref>,
pub source_name: Option<String>,
pub target_path: Option<String>,
pub dependency_type: Option<DependencyType>,
pub availability: Option<Availability>,
pub source_dictionary: Option<String>,
/* private fields */
}
Expand description
Declares a protocol used by a component, which was offered to it.
A protocol is a service with a single instance, provided by a single FIDL protocol.
Fields§
§source: Option<Ref>
(Required) The provider of the protocol relative to the component
itself. Must be parent
, framework
, debug
, capability
or child
.
source_name: Option<String>
(Required) Name identifying the protocol, by which it was presented to this component.
target_path: Option<String>
(Required) The path where the capability should be installed in the component’s namespace.
Must be an absolute path starting with /.
dependency_type: Option<DependencyType>
(Required) The dependency type this use represents.
A component which offers a capability to a child from itself and uses a
capability from the same child, must mark the dependency as weak
. A
weak
dependency implies that the capability may become unavailable at
any point. Taking a strong dependency on a child’s capability will
cause this the child to shut down before its parent. When using a weak
dependency, the parent shuts down before the child.
availability: Option<Availability>
(Optional, defaults to REQUIRED
) The availability of this capability.
If set to required
, the component is likely to malfunction if this
capability is not provided. If set to optional
, the component can
handle the capability’s absence.
source_dictionary: Option<String>
(Optional) Path in a dictionary provided by source
which contains source_name
.
If this field is absent, source_name
identifies a capability directly routed
by source
. If set, source_name
identifies a capability nested inside this
dictionary.
Trait Implementations§
Source§impl Clone for UseProtocol
impl Clone for UseProtocol
Source§fn clone(&self) -> UseProtocol
fn clone(&self) -> UseProtocol
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for UseProtocol
impl Debug for UseProtocol
Source§impl<D: ResourceDialect> Decode<UseProtocol, D> for UseProtocol
impl<D: ResourceDialect> Decode<UseProtocol, D> for UseProtocol
Source§impl Default for UseProtocol
impl Default for UseProtocol
Source§fn default() -> UseProtocol
fn default() -> UseProtocol
Source§impl<D: ResourceDialect> Encode<UseProtocol, D> for &UseProtocol
impl<D: ResourceDialect> Encode<UseProtocol, D> for &UseProtocol
Source§impl PartialEq for UseProtocol
impl PartialEq for UseProtocol
Source§impl TypeMarker for UseProtocol
impl TypeMarker for UseProtocol
Source§type Owned = UseProtocol
type Owned = UseProtocol
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align
.§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read more§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.Source§impl ValueTypeMarker for UseProtocol
impl ValueTypeMarker for UseProtocol
Source§type Borrowed<'a> = &'a UseProtocol
type Borrowed<'a> = &'a UseProtocol
Encode<Self>
type cheaply obtainable from &Self::Owned
. There are three cases: Read moreimpl Persistable for UseProtocol
impl StructuralPartialEq for UseProtocol
Auto Trait Implementations§
impl Freeze for UseProtocol
impl RefUnwindSafe for UseProtocol
impl Send for UseProtocol
impl Sync for UseProtocol
impl Unpin for UseProtocol
impl UnwindSafe for UseProtocol
Blanket Implementations§
§impl<T> Body for Twhere
T: Persistable,
impl<T> Body for Twhere
T: Persistable,
§type MarkerAtTopLevel = T
type MarkerAtTopLevel = T
§type MarkerInResultUnion = T
type MarkerInResultUnion = T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)