Skip to main content

RouteRequest

Struct RouteRequest 

Source
pub struct RouteRequest {
    pub build_type_name: Option<String>,
    pub availability: Option<Availability>,
    pub directory_rights: Option<Flags>,
    pub directory_intermediate_rights: Option<Flags>,
    pub inherit_rights: Option<bool>,
    pub sub_directory_path: Option<String>,
    pub isolated_storage_path: Option<String>,
    pub storage_sub_directory_path: Option<String>,
    pub storage_source_moniker: Option<String>,
    pub event_stream_scope_moniker: Option<String>,
    pub event_stream_scope: Option<Vec<Ref>>,
    pub skip_policy_checks: Option<bool>,
    /* private fields */
}
Expand description

Contains metadata about the requested capability, which can be used to modify the returned capability (such as reducing directory rights), or used to reject the route (i.e. return an error).

Fields§

§build_type_name: Option<String>

The build-time type of the capability that’s being routed (e.g. protocol, storage, or resolver). Should always be set.

§availability: Option<Availability>

The availability of the requested capability. Should always be set.

§directory_rights: Option<Flags>

The rights the directory is being requested at. Should be set when routing a directory or storage capability.

§directory_intermediate_rights: Option<Flags>

The rights associated with the previous declaration in a multi-step route. Should be set when routing a directory or storage capability.

§inherit_rights: Option<bool>

Whether or not directory rights should be inherited from the capability declaration if they are not present in an expose or offer declaration. Must be set when routing a directory or storage capability.

§sub_directory_path: Option<String>

The sub-path at which a directory capability should be connected. May be set when routing a directory or storage capability.

§isolated_storage_path: Option<String>

The path within the backing directory that a used storage capability will be connected to.

§storage_sub_directory_path: Option<String>

The subdirectory inside of the storage backing directory’s subdirectory to use, if any. The difference between this and sub_directory_path is that a) the sub_directory_path generically refers to the subdirectory of a directory capability, and b) the sub_directory_path is appended to the isolated_storage_path first (which is a path into a backing directory), and component_manager will create the storage_sub_directory_path if it doesn’t exist but won’t create sub_directory_path. Accordingly, the complete path to a storage capability within the backing directory is {isolated_storage_path}/{sub_directory_path}/{storage_sub_directory_path}.

Should be set when routing a storage capability.

§storage_source_moniker: Option<String>

The moniker of a component that provides a storage build-time capability. Should be set when routing the backing directory of a storage capability.

§event_stream_scope_moniker: Option<String>

The moniker of the component that has set a scope on an event stream. May be set when routing an event stream.

§event_stream_scope: Option<Vec<Ref>>

The scope(s) from which the consumer of this event stream will be able to observe events. Relative to the scope_moniker. May be set when routing an event stream.

§skip_policy_checks: Option<bool>

Disables allowlist checking for the routed capability. This flag is ignored when not running on host, and is necessary for performing checks on intermediate routes in scrutiny (e.g. routing from an “offer” and not a “use”). May be set for any build-time capability type.

Trait Implementations§

Source§

impl Clone for RouteRequest

Source§

fn clone(&self) -> RouteRequest

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 RouteRequest

Source§

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

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

impl<D> Decode<RouteRequest, D> for RouteRequest
where D: ResourceDialect,

Source§

fn new_empty() -> RouteRequest

Creates a valid instance of Self. The specific value does not matter, since it will be overwritten by decode.
Source§

unsafe fn decode( &mut self, decoder: &mut Decoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Decodes an object of type T from the decoder’s buffers into self. Read more
Source§

impl Default for RouteRequest

Source§

fn default() -> RouteRequest

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

impl<D> Encode<RouteRequest, D> for &RouteRequest
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 PartialEq for RouteRequest

Source§

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

Source§

type Owned = RouteRequest

The owned Rust type which this FIDL type decodes into.
Source§

fn inline_align(_context: Context) -> usize

Returns the minimum required alignment of the inline portion of the encoded object. It must be a (nonzero) power of two.
Source§

fn inline_size(_context: Context) -> usize

Returns the size of the inline portion of the encoded object, including padding for alignment. Must be a multiple of inline_align.
Source§

fn encode_is_copy() -> bool

Returns true if the memory layout of 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
Source§

fn decode_is_copy() -> bool

Returns true if the memory layout of 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 RouteRequest

Source§

type Borrowed<'a> = &'a RouteRequest

The Rust type to use for encoding. This is a particular Encode<Self> type cheaply obtainable from &Self::Owned. There are three cases: Read more
Source§

fn borrow( value: &<RouteRequest as TypeMarker>::Owned, ) -> <RouteRequest as ValueTypeMarker>::Borrowed<'_>

Cheaply converts from &Self::Owned to Self::Borrowed.
Source§

impl Persistable for RouteRequest

Source§

impl StructuralPartialEq for RouteRequest

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> Body for T
where T: Persistable,

Source§

type MarkerAtTopLevel = T

The marker type to use when the body is at the top-level.
Source§

type MarkerInResultUnion = T

The marker type to use when the body is nested in a result union.
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, 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<E> ErrorType for E

Source§

type Marker = E

The marker type.
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.

§

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> 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.