SpannedExpose

Struct SpannedExpose 

Source
pub struct SpannedExpose {
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: Spanned<OneOrMany<ExposeFromRef>>, pub as: Option<Spanned<Name>>, pub to: Option<Spanned<ExposeToRef>>, pub rights: Option<Spanned<Rights>>, pub subdir: Option<Spanned<RelativePath>>, pub event_stream: Option<Spanned<OneOrMany<Name>>>, pub scope: Option<OneOrMany<EventScope>>, pub availability: Option<Availability>, pub source_availability: Option<SourceAvailability>,
}

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: Spanned<OneOrMany<ExposeFromRef>>

from: The source of the capability, one of:

  • self: This component. Requires a corresponding capability declaration.
  • framework: The Component Framework runtime.
  • #<child-name>: A reference to a child component instance.
§as: Option<Spanned<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<Spanned<ExposeToRef>>

The capability target. Either parent or framework. Defaults to parent.

§rights: Option<Spanned<Rights>>

(directory only) the maximum [directory rights][doc-directory-rights] to apply to the exposed directory capability.

§subdir: Option<Spanned<RelativePath>>

(directory only) the relative path of a subdirectory within the source directory capability to route.

§event_stream: Option<Spanned<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 a required dependency on the capability. The ultimate source of this expose must be void or 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 to required. If the target has an optional dependency on the capability, then the field is set to optional.
  • transitional: like optional, 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 to void if its source (from) is not defined in this manifest after includes are processed.

Trait Implementations§

Source§

impl AsClause for SpannedExpose

Source§

impl Clone for SpannedExpose

Source§

fn clone(&self) -> SpannedExpose

Returns a duplicate 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 SpannedExpose

Source§

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

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

impl<'de> Deserialize<'de> for SpannedExpose

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 PartialEq for SpannedExpose

Source§

fn eq(&self, other: &SpannedExpose) -> 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 SpannedCapabilityClause for SpannedExpose

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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§

impl StructuralPartialEq for SpannedExpose

Auto Trait Implementations§

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, dest: *mut u8)

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

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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, 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

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

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

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> 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,