pub struct Capability {Show 21 fields
pub service: Option<OneOrMany<Name>>,
pub protocol: Option<OneOrMany<Name>>,
pub directory: Option<Name>,
pub storage: Option<Name>,
pub runner: Option<Name>,
pub resolver: Option<Name>,
pub event_stream: Option<OneOrMany<Name>>,
pub dictionary: Option<Name>,
pub config: Option<Name>,
pub path: Option<Path>,
pub rights: Option<Rights>,
pub from: Option<CapabilityFromRef>,
pub backing_dir: Option<Name>,
pub subdir: Option<RelativePath>,
pub storage_id: Option<StorageId>,
pub config_type: Option<ConfigType>,
pub config_max_size: Option<NonZeroU32>,
pub config_max_count: Option<NonZeroU32>,
pub config_element_type: Option<ConfigNestedValueType>,
pub value: Option<Value>,
pub delivery: Option<DeliveryType>,
}
Fields§
§service: Option<OneOrMany<Name>>
The name for this service capability. Specifying path
is valid
only when this value is a string.
protocol: Option<OneOrMany<Name>>
The name for this protocol capability. Specifying path
is valid
only when this value is a string.
directory: Option<Name>
The name for this directory capability.
storage: Option<Name>
The name for this storage capability.
runner: Option<Name>
The name for this runner capability.
resolver: Option<Name>
The name for this resolver capability.
event_stream: Option<OneOrMany<Name>>
The name for this event_stream capability.
dictionary: Option<Name>
The name for this dictionary capability.
config: Option<Name>
The name for this configuration capability.
path: Option<Path>
The path within the [outgoing directory][glossary.outgoing directory] of the component’s program to source the capability.
For protocol
and service
, defaults to /svc/${protocol}
, otherwise required.
For protocol
, the target of the path MUST be a channel, which tends to speak
the protocol matching the name of this capability.
For service
, directory
, the target of the path MUST be a directory.
For runner
, the target of the path MUST be a channel and MUST speak
the protocol fuchsia.component.runner.ComponentRunner
.
For resolver
, the target of the path MUST be a channel and MUST speak
the protocol fuchsia.component.resolution.Resolver
.
For dictionary
, this is optional. If provided, it is a path to a
fuchsia.component.sandbox/DictionaryRouter
served by the program which should return a
fuchsia.component.sandbox/DictionaryRef
, by which the program may dynamically provide
a dictionary from itself. If this is set for dictionary
, offer
to this dictionary
is not allowed.
rights: Option<Rights>
(directory
only) The maximum [directory rights][doc-directory-rights] that may be set
when using this directory.
from: Option<CapabilityFromRef>
(storage
only) The source component of an existing directory capability backing this
storage capability, one of:
parent
: The component’s parent.self
: This component.#<child-name>
: A reference to a child component instance.
backing_dir: Option<Name>
(storage
only) The name of the directory capability backing the storage. The
capability must be available from the component referenced in from
.
subdir: Option<RelativePath>
(storage
only) A subdirectory within backing_dir
where per-component isolated storage
directories are created
storage_id: Option<StorageId>
(storage
only) The identifier used to isolated storage for a component, one of:
static_instance_id
: The instance ID in the component ID index is used as the key for a component’s storage. Components which are not listed in the component ID index will not be able to use this storage capability.static_instance_id_or_moniker
: If the component is listed in the component ID index, the instance ID is used as the key for a component’s storage. Otherwise, the component’s moniker from the storage capability is used.
config_type: Option<ConfigType>
(configuration
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. Seeelement
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,
}
value: Option<Value>
(configuration
only) The value of the configuration.
delivery: Option<DeliveryType>
(protocol
only) Specifies when the framework will open the protocol
from this component’s outgoing directory when someone requests the
capability. Allowed values are:
eager
: (default) the framework will open the capability as soon as some consumer component requests it.on_readable
: the framework will open the capability when the server endpoint pipelined in a connection request becomes readable.
Trait Implementations§
Source§impl CapabilityClause for Capability
impl CapabilityClause for Capability
fn service(&self) -> Option<OneOrMany<&Name>>
fn protocol(&self) -> Option<OneOrMany<&Name>>
fn directory(&self) -> Option<OneOrMany<&Name>>
fn storage(&self) -> Option<OneOrMany<&Name>>
fn runner(&self) -> Option<OneOrMany<&Name>>
fn resolver(&self) -> Option<OneOrMany<&Name>>
fn event_stream(&self) -> Option<OneOrMany<&Name>>
fn dictionary(&self) -> Option<OneOrMany<&Name>>
fn config(&self) -> Option<OneOrMany<&Name>>
fn set_service(&mut self, o: Option<OneOrMany<Name>>)
fn set_protocol(&mut self, o: Option<OneOrMany<Name>>)
fn set_directory(&mut self, o: Option<OneOrMany<Name>>)
fn set_storage(&mut self, o: Option<OneOrMany<Name>>)
fn set_runner(&mut self, o: Option<OneOrMany<Name>>)
fn set_resolver(&mut self, o: Option<OneOrMany<Name>>)
fn set_event_stream(&mut self, o: Option<OneOrMany<Name>>)
fn set_dictionary(&mut self, o: Option<OneOrMany<Name>>)
fn set_config(&mut self, o: Option<OneOrMany<Name>>)
fn availability(&self) -> Option<Availability>
fn set_availability(&mut self, _a: Option<Availability>)
fn decl_type(&self) -> &'static str
fn supported(&self) -> &[&'static str]
Source§fn are_many_names_allowed(&self) -> bool
fn are_many_names_allowed(&self) -> bool
Source§fn capability_type(&self) -> Result<&'static str, Error>
fn capability_type(&self) -> Result<&'static str, Error>
service()
returns Some
, the capability name must be “service”, etc. Read moreSource§fn names(&self) -> Vec<&Name>
fn names(&self) -> Vec<&Name>
protocol()
returns Some(OneOrMany::Many(vec!["a", "b"]))
, this returns![“a”, “b”].fn set_names(&mut self, names: Vec<Name>)
Source§impl Clone for Capability
impl Clone for Capability
Source§fn clone(&self) -> Capability
fn clone(&self) -> Capability
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for Capability
impl Debug for Capability
Source§impl Default for Capability
impl Default for Capability
Source§fn default() -> Capability
fn default() -> Capability
Source§impl<'de> Deserialize<'de> for Capability
impl<'de> Deserialize<'de> for Capability
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl MarkdownReferenceDocGenerator for Capability
impl MarkdownReferenceDocGenerator for Capability
Source§fn get_reference_doc_markdown() -> String
fn get_reference_doc_markdown() -> String
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
fn get_reference_doc_markdown_with_options( indent_headers_by: usize, indent_with_spaces: usize, ) -> String
Source§impl PartialEq for Capability
impl PartialEq for Capability
Source§impl PathClause for Capability
impl PathClause for Capability
Source§impl RightsClause for Capability
impl RightsClause for Capability
Source§impl Serialize for Capability
impl Serialize for Capability
impl StructuralPartialEq for Capability
Auto Trait Implementations§
impl Freeze for Capability
impl RefUnwindSafe for Capability
impl Send for Capability
impl Sync for Capability
impl Unpin for Capability
impl UnwindSafe for Capability
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
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
)