runner

Struct StartInfo

Source
pub struct StartInfo {
    pub resolved_url: String,
    pub program: Dictionary,
    pub namespace: Vec<ComponentNamespaceEntry>,
    pub outgoing_dir: Option<ServerEnd<DirectoryMarker>>,
    pub runtime_dir: Option<ServerEnd<DirectoryMarker>>,
    pub numbered_handles: Vec<HandleInfo>,
    pub encoded_config: Option<Data>,
    pub break_on_start: Option<EventPair>,
    pub component_instance: Option<Event>,
    pub escrowed_dictionary: Option<DictionaryRef>,
}
Expand description

StartInfo is convertible from the FIDL fcrunner::ComponentStartInfo type and performs validation that makes sense for all runners in the process.

Fields§

§resolved_url: String

The resolved URL of the component.

This is the canonical URL obtained by the component resolver after following redirects and resolving relative paths.

§program: Dictionary

The component’s program declaration. This information originates from ComponentDecl.program.

§namespace: Vec<ComponentNamespaceEntry>

The namespace to provide to the component instance.

A namespace specifies the set of directories that a component instance receives at start-up. Through the namespace directories, a component may access capabilities available to it. The contents of the namespace are mainly determined by the component’s use declarations but may also contain additional capabilities automatically provided by the framework.

By convention, a component’s namespace typically contains some or all of the following directories:

  • “/svc”: A directory containing services that the component requested to use via its “import” declarations.
  • “/pkg”: A directory containing the component’s package, including its binaries, libraries, and other assets.

The mount points specified in each entry must be unique and non-overlapping. For example, [{“/foo”, ..}, {“/foo/bar”, ..}] is invalid.

§outgoing_dir: Option<ServerEnd<DirectoryMarker>>

The directory this component serves.

§runtime_dir: Option<ServerEnd<DirectoryMarker>>

The directory served by the runner to present runtime information about the component. The runner must either serve it, or drop it to avoid blocking any consumers indefinitely.

§numbered_handles: Vec<HandleInfo>

The numbered handles that were passed to the component.

If the component does not support numbered handles, the runner is expected to close the handles.

§encoded_config: Option<Data>

Binary representation of the component’s configuration.

§Layout

The first 2 bytes of the data should be interpreted as an unsigned 16-bit little-endian integer which denotes the number of bytes following it that contain the configuration checksum. After the checksum, all the remaining bytes are a persistent FIDL message of a top-level struct. The struct’s fields match the configuration fields of the component’s compiled manifest in the same order.

§break_on_start: Option<EventPair>

An eventpair that debuggers can use to defer the launch of the component.

For example, ELF runners hold off from creating processes in the component until ZX_EVENTPAIR_PEER_CLOSED is signaled on this eventpair. They also ensure that runtime_dir is served before waiting on this eventpair. ELF debuggers can query the runtime_dir to decide whether to attach before they drop the other side of the eventpair, which is sent in the payload of the DebugStarted event in fuchsia.component.events.

§component_instance: Option<Event>

An opaque token that represents the component instance.

The fuchsia.component/Introspector protocol may be used to get the string moniker of the instance from this token.

Runners may publish this token as part of diagnostics information, to identify the running component without knowing its moniker.

The token is invalidated when the component instance is destroyed.

§escrowed_dictionary: Option<DictionaryRef>

A dictionary containing data and handles that the component has escrowed during its previous execution via fuchsia.component.runner/ComponentController.OnEscrow.

Trait Implementations§

Source§

impl From<StartInfo> for ComponentStartInfo

Source§

fn from(start_info: StartInfo) -> Self

Converts to this type from the input type.
Source§

impl TryFrom<ComponentStartInfo> for StartInfo

Source§

type Error = StartInfoError

The type returned in the event of a conversion error.
Source§

fn try_from(start_info: ComponentStartInfo) -> Result<Self, Self::Error>

Performs the conversion.

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

§

impl<T> Instrument for T

§

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

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

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> IntoAny for T
where T: 'static + Send + Sync,

Source§

fn into_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Cast the given object into a dyn std::any::Any.
§

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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