cml

Struct Use

Source
pub struct Use {
Show 21 fields pub service: Option<OneOrMany<Name>>, pub protocol: Option<OneOrMany<Name>>, pub directory: Option<Name>, pub storage: Option<Name>, pub event_stream: Option<OneOrMany<Name>>, pub runner: Option<Name>, pub config: Option<Name>, pub from: Option<UseFromRef>, pub path: Option<Path>, pub rights: Option<Rights>, pub subdir: Option<RelativePath>, pub scope: Option<OneOrMany<EventScope>>, pub filter: Option<Map<String, Value>>, pub dependency: Option<DependencyType>, pub availability: Option<Availability>, pub key: Option<Name>, pub config_type: Option<ConfigType>, pub config_max_size: Option<NonZeroU32>, pub config_max_count: Option<NonZeroU32>, pub config_element_type: Option<ConfigNestedValueType>, pub config_default: Option<Value>,
}
Expand description

Example:

use: [
    {
        protocol: [
            "fuchsia.ui.scenic.Scenic",
            "fuchsia.accessibility.Manager",
        ]
    },
    {
        directory: "themes",
        path: "/data/themes",
        rights: [ "r*" ],
    },
    {
        storage: "persistent",
        path: "/data",
    },
    {
        event_stream: [
            "started",
            "stopped",
        ],
        from: "framework",
    },
    {
        runner: "own_test_runner".
        from: "#test_runner",
    },
],

Fields§

§service: Option<OneOrMany<Name>>

When using a service capability, the name of a [service capability][doc-service].

§protocol: Option<OneOrMany<Name>>

When using a protocol capability, the name of a [protocol capability][doc-protocol].

§directory: Option<Name>

When using a directory capability, the name of a [directory capability][doc-directory].

§storage: Option<Name>

When using a storage capability, the name of a [storage capability][doc-storage].

§event_stream: Option<OneOrMany<Name>>

When using an event stream capability, the name of an [event stream capability][doc-event].

§runner: Option<Name>

When using a runner capability, the name of a [runner capability][doc-runners].

§config: Option<Name>

When using a configuration capability, the name of a [configuration capability][doc-configuration].

§from: Option<UseFromRef>

The source of the capability. Defaults to parent. One of:

  • parent: The component’s parent.
  • debug: One of debug_capabilities in the environment assigned to this component.
  • framework: The Component Framework runtime.
  • self: This component.
  • #<capability-name>: The name of another capability from which the requested capability is derived.
  • #<child-name>: A reference to a child component instance.
§path: Option<Path>

The path at which to install the capability in the component’s namespace. For protocols, defaults to /svc/${protocol}. Required for directory and storage. This property is disallowed for declarations with arrays of capability names and for runner capabilities.

§rights: Option<Rights>

(directory only) the maximum [directory rights][doc-directory-rights] to apply to the directory in the component’s namespace.

§subdir: Option<RelativePath>

(directory only) A subdirectory within the directory capability to provide in the component’s namespace.

§scope: Option<OneOrMany<EventScope>>

(event_stream only) When defined the event stream will contain events about only the components defined in the scope.

§filter: Option<Map<String, Value>>

(event_stream only) Capability requested event streams require specifying a filter referring to the protocol to which the events in the event stream apply. The content of the filter will be an object mapping from “name” to the “protocol name”.

§dependency: Option<DependencyType>

The type of dependency between the source and this component, one of:

  • strong: a strong dependency, which is used to determine shutdown ordering. Component manager is guaranteed to stop the target before the source. This is the default.
  • weak: a weak dependency, which is ignored during shutdown. When component manager stops the parent realm, the source may stop before the clients. Clients of weak dependencies must be able to handle these dependencies becoming unavailable. This property is disallowed for runner capabilities, which are always a strong dependency.
§availability: Option<Availability>

The expectations around this capability’s availability. One of:

  • required (default): a required dependency, the component is unable to perform its work without this capability.
  • optional: an optional dependency, the component will be able to function without this capability (although if the capability is unavailable some functionality may be disabled).
  • transitional: the source may omit the route completely without even having to route from void. Used for soft transitions that introduce new capabilities. This property is disallowed for runner capabilities, which are always required.

For more information, see the availability documentation.

§key: Option<Name>

(config only) The configuration key in the component’s config block that this capability will set.

§config_type: Option<ConfigType>

(config only) The type of configuration, one of:

  • bool: Boolean type.
  • uint8: Unsigned 8 bit type.
  • uint16: Unsigned 16 bit type.
  • uint32: Unsigned 32 bit type.
  • uint64: Unsigned 64 bit type.
  • int8: Signed 8 bit type.
  • int16: Signed 16 bit type.
  • int32: Signed 32 bit type.
  • int64: Signed 64 bit type.
  • string: ASCII string type.
  • vector: Vector type. See element for the type of the element within the vector
§config_max_size: Option<NonZeroU32>

(configuration only) Only supported if this configuration type is ‘string’. This is the max size of the string.

§config_max_count: Option<NonZeroU32>

(configuration only) Only supported if this configuration type is ‘vector’. This is the max number of elements in the vector.

§config_element_type: Option<ConfigNestedValueType>

(configuration only) Only supported if this configuration type is ‘vector’. This is the type of the elements in the configuration vector.

Example (simple type):

{ type: "uint8" }

Example (string type):

{
  type: "string",
  max_size: 100,
}
§config_default: Option<Value>

(configuration only) The default value of this configuration. Default values are used if the capability is optional and routed from void. This is only supported if availability is not `required``.

Trait Implementations§

Source§

impl CapabilityClause for Use

Source§

fn service(&self) -> Option<OneOrMany<&Name>>

Source§

fn protocol(&self) -> Option<OneOrMany<&Name>>

Source§

fn directory(&self) -> Option<OneOrMany<&Name>>

Source§

fn storage(&self) -> Option<OneOrMany<&Name>>

Source§

fn runner(&self) -> Option<OneOrMany<&Name>>

Source§

fn resolver(&self) -> Option<OneOrMany<&Name>>

Source§

fn event_stream(&self) -> Option<OneOrMany<&Name>>

Source§

fn dictionary(&self) -> Option<OneOrMany<&Name>>

Source§

fn config(&self) -> Option<OneOrMany<&Name>>

Source§

fn set_service(&mut self, o: Option<OneOrMany<Name>>)

Source§

fn set_protocol(&mut self, o: Option<OneOrMany<Name>>)

Source§

fn set_directory(&mut self, o: Option<OneOrMany<Name>>)

Source§

fn set_storage(&mut self, o: Option<OneOrMany<Name>>)

Source§

fn set_runner(&mut self, _o: Option<OneOrMany<Name>>)

Source§

fn set_resolver(&mut self, _o: Option<OneOrMany<Name>>)

Source§

fn set_event_stream(&mut self, o: Option<OneOrMany<Name>>)

Source§

fn set_dictionary(&mut self, _o: Option<OneOrMany<Name>>)

Source§

fn set_config(&mut self, o: Option<OneOrMany<Name>>)

Source§

fn availability(&self) -> Option<Availability>

Source§

fn set_availability(&mut self, a: Option<Availability>)

Source§

fn decl_type(&self) -> &'static str

Source§

fn supported(&self) -> &[&'static str]

Source§

fn are_many_names_allowed(&self) -> bool

Returns true if this capability type allows the ::Many variant of OneOrMany.
Source§

fn capability_type(&self) -> Result<&'static str, Error>

Returns the name of the capability for display purposes. If service() returns Some, the capability name must be “service”, etc. Read more
Source§

fn names(&self) -> Vec<&Name>

Returns the names of the capabilities in this clause. If protocol() returns Some(OneOrMany::Many(vec!["a", "b"])), this returns![“a”, “b”].
Source§

fn set_names(&mut self, names: Vec<Name>)

Source§

impl Clone for Use

Source§

fn clone(&self) -> Use

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Use

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Use

Source§

fn default() -> Use

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Use

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl FilterClause for Use

Source§

impl FromClause for Use

Source§

fn from_(&self) -> OneOrMany<AnyRef<'_>>

Source§

impl MarkdownReferenceDocGenerator for Use

Source§

fn get_reference_doc_markdown() -> String

Returns a Markdown representation of the reference docs for the struct that is derived from ReferenceDoc. The returned Markdown indents any # Markdown headers in individual field doc comments to ensure a well structured final Markdown document.
§

fn get_reference_doc_markdown_with_options( indent_headers_by: usize, indent_with_spaces: usize, ) -> String

This method is called internally by the reference doc generator when recursing to generate documentation for field types.
Source§

impl PartialEq for Use

Source§

fn eq(&self, other: &Use) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PathClause for Use

Source§

fn path(&self) -> Option<&Path>

Source§

impl RightsClause for Use

Source§

impl Serialize for Use

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Use

Auto Trait Implementations§

§

impl Freeze for Use

§

impl RefUnwindSafe for Use

§

impl Send for Use

§

impl Sync for Use

§

impl Unpin for Use

§

impl UnwindSafe for Use

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

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

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

Source§

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, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

Source§

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.

Source§

impl<T> Instrument for T

Source§

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

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

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.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize = _

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

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

Initializes a with the given initializer. Read more
Source§

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

Dereferences the given pointer. Read more
Source§

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

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.
Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,