pub struct Expose {Show 16 fields
pub service: Option<OneOrMany<Name>>,
pub protocol: Option<OneOrMany<Name>>,
pub directory: Option<OneOrMany<Name>>,
pub runner: Option<OneOrMany<Name>>,
pub resolver: Option<OneOrMany<Name>>,
pub dictionary: Option<OneOrMany<Name>>,
pub config: Option<OneOrMany<Name>>,
pub from: OneOrMany<ExposeFromRef>,
pub as: Option<Name>,
pub to: Option<ExposeToRef>,
pub rights: Option<Rights>,
pub subdir: Option<RelativePath>,
pub event_stream: Option<OneOrMany<Name>>,
pub scope: Option<OneOrMany<EventScope>>,
pub availability: Option<Availability>,
pub source_availability: Option<SourceAvailability>,
}Expand description
Example:
expose: [
{
directory: "themes",
from: "self",
},
{
protocol: "pkg.Cache",
from: "#pkg_cache",
as: "fuchsia.pkg.PackageCache",
},
{
protocol: [
"fuchsia.ui.app.ViewProvider",
"fuchsia.fonts.Provider",
],
from: "self",
},
{
runner: "web-chromium",
from: "#web_runner",
as: "web",
},
{
resolver: "full-resolver",
from: "#full-resolver",
},
],Fields§
§service: Option<OneOrMany<Name>>When routing a service, the name of a [service capability][doc-service].
protocol: Option<OneOrMany<Name>>When routing a protocol, the name of a [protocol capability][doc-protocol].
directory: Option<OneOrMany<Name>>When routing a directory, the name of a [directory capability][doc-directory].
runner: Option<OneOrMany<Name>>When routing a runner, the name of a [runner capability][doc-runners].
resolver: Option<OneOrMany<Name>>When routing a resolver, the name of a [resolver capability][doc-resolvers].
dictionary: Option<OneOrMany<Name>>When routing a dictionary, the name of a [dictionary capability][doc-dictionaries].
config: Option<OneOrMany<Name>>When routing a config, the name of a configuration capability.
from: OneOrMany<ExposeFromRef>from: The source of the capability, one of:
self: This component. Requires a correspondingcapabilitydeclaration.framework: The Component Framework runtime.#<child-name>: A reference to a child component instance.
as: Option<Name>The name for the capability as it will be known by the target. If omitted,
defaults to the original name. as cannot be used when an array of multiple capability
names is provided.
to: Option<ExposeToRef>The capability target. Either parent or framework. Defaults to parent.
rights: Option<Rights>(directory only) the maximum [directory rights][doc-directory-rights] to apply to
the exposed directory capability.
subdir: Option<RelativePath>(directory only) the relative path of a subdirectory within the source directory
capability to route.
event_stream: Option<OneOrMany<Name>>(event_stream only) the name(s) of the event streams being exposed.
scope: Option<OneOrMany<EventScope>>(event_stream only) the scope(s) of the event streams being exposed. This is used to
downscope the range of components to which an event stream refers and make it refer only to
the components defined in the scope.
availability: Option<Availability>availability (optional): The expectations around this capability’s availability. Affects
build-time and runtime route validation. One of:
required(default): a required dependency, the source must exist and provide it. Use this when the target of this expose requires this capability to function properly.optional: an optional dependency. Use this when the target of the expose can function with or without this capability. The target must not have arequireddependency on the capability. The ultimate source of this expose must bevoidor an actual component.same_as_target: the availability expectations of this capability will match the target’s. If the target requires the capability, then this field is set torequired. If the target has an optional dependency on the capability, then the field is set tooptional.transitional: likeoptional, but will tolerate a missing source. Use this only to avoid validation errors during transitional periods of multi-step code changes.
For more information, see the availability documentation.
source_availability: Option<SourceAvailability>Whether or not the source of this offer must exist. One of:
required(default): the source (from) must be defined in this manifest.unknown: the source of this offer will be rewritten tovoidif its source (from) is not defined in this manifest after includes are processed.
Implementations§
Trait Implementations§
Source§impl CapabilityClause for Expose
impl CapabilityClause for Expose
fn service(&self) -> Option<OneOrMany<&BorrowedName>>
fn protocol(&self) -> Option<OneOrMany<&BorrowedName>>
fn directory(&self) -> Option<OneOrMany<&BorrowedName>>
fn storage(&self) -> Option<OneOrMany<&BorrowedName>>
fn runner(&self) -> Option<OneOrMany<&BorrowedName>>
fn resolver(&self) -> Option<OneOrMany<&BorrowedName>>
fn event_stream(&self) -> Option<OneOrMany<&BorrowedName>>
fn dictionary(&self) -> Option<OneOrMany<&BorrowedName>>
fn config(&self) -> Option<OneOrMany<&BorrowedName>>
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<&BorrowedName> ⓘ
fn names(&self) -> Vec<&BorrowedName> ⓘ
protocol() returns Some(OneOrMany::Many(vec!["a", "b"])), this returns![“a”, “b”].fn set_names(&mut self, names: Vec<Name>)
Source§impl<'de> Deserialize<'de> for Expose
impl<'de> Deserialize<'de> for Expose
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 Expose
impl MarkdownReferenceDocGenerator for Expose
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.impl StructuralPartialEq for Expose
Auto Trait Implementations§
impl Freeze for Expose
impl RefUnwindSafe for Expose
impl Send for Expose
impl Sync for Expose
impl Unpin for Expose
impl UnwindSafe for Expose
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§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more