Skip to main content

LaunchSpec

Struct LaunchSpec 

pub struct LaunchSpec { /* private fields */ }
Expand description

How the standard lifecycle launches one application definition: its component host, capture scenarios, commands and accepted arguments.

Implementations§

§

impl LaunchSpec

pub fn runtime_attachment(self, policy: fn(&LaunchArgs) -> bool) -> LaunchSpec

Select automatic runtime attachment for native launches. The default is enabled. Disabling bootstrap does not revoke inherited service handles; privacy-sensitive apps must also construct a local-only application.

pub fn attaches_runtime(&self, args: &LaunchArgs) -> bool

Whether a native launch with args attaches to the session runtime.

pub fn from_definition(definition: &'static ApplicationDefinition) -> LaunchSpec

Adapt one common application definition. A runner must install an explicit host.

pub fn definition(&self) -> &'static ApplicationDefinition

The application this specification launches.

pub fn app_id(&self) -> &'static str

The id of the app this specification launches.

pub fn component_host( self, prepare: fn(&ApplicationDefinition, &LaunchArgs) -> Result<PreparedComponentInputs, LaunchError>, ) -> LaunchSpec

pub fn native_services(self) -> LaunchSpec

Use the shared native system-service runner for a prepared application. Service discovery happens only when opening a window, after preparation; captures, audits and headless driving retain their explicit isolation.

pub fn capture_scenario( self, scenario: fn(&mut FrameHarness, &LaunchArgs) -> Result<(), LaunchError>, ) -> LaunchSpec

Apply capture-only interactions after the normal factory and restoration. Never runs for live/headless launches or native certification audits.

pub fn prepare_hosted( &self, args: &LaunchArgs, ) -> Result<PreparedComponentInputs, LaunchError>

What a launch with args opens, prepared by the specification’s component host but not instantiated: the record, the profile it lives in and what the host hands the component.

§Errors

Returns argument, profile or record failures, or LaunchError::MissingComponentHost.

pub fn prepare_component( &self, args: &LaunchArgs, context: HostContext, target: LaunchTarget, restore: RestoreInput, ) -> Result<AppComponent, LaunchError>

Prepare this definition using already authenticated host inputs.

§Errors

Returns argument, capability, binding, factory, or restoration failures.

pub fn shot_viewport(self, factory: fn(&LaunchArgs) -> (u32, u32)) -> LaunchSpec

Scenario-specific default viewport. An explicit --viewport always wins over this callback.

pub fn command_handler( self, handler: fn(&LaunchArgs) -> Result<bool, LaunchError>, ) -> LaunchSpec

Handle an app-specific, non-windowed command after argument validation. Return true when the command was handled and launch should stop.

This keeps developer utilities such as fixture generation and benchmark drivers in the standard parser without making them part of the normal screenshot or live-window lifecycle. A component’s in-process hosts never run it: commands belong to the app’s own process.

pub fn disable_headless(self) -> LaunchSpec

Reject headless input driving for apps whose widgets have privileged side effects, such as an on-screen keyboard that injects keystrokes into another application.

pub fn allowed_flags(self, flags: &'static [&'static str]) -> LaunchSpec

Allow app-specific boolean flags. Value-taking common options belong in LaunchArgs; specialized CLIs should use the lower-level APIs.

pub fn allowed_options(self, options: &'static [&'static str]) -> LaunchSpec

Allow app-specific, value-taking options in both --name value and --name=value form. Their values are available through LaunchArgs::value.

pub fn allowed_live_flags(self, flags: &'static [&'static str]) -> LaunchSpec

Allow boolean flags in live/headless mode as well as screenshot mode.

pub fn allowed_live_options( self, options: &'static [&'static str], ) -> LaunchSpec

Allow value-taking options in live/headless mode as well as screenshots.

pub fn max_positionals(self, max: usize) -> LaunchSpec

Accept at most max positional document/session arguments.

pub fn scenarios(self, scenarios: &'static [&'static str]) -> LaunchSpec

Declare every accepted screenshot scenario. With no declaration, --scenario is rejected instead of being silently ignored.

Trait Implementations§

§

impl Clone for LaunchSpec

§

fn clone(&self) -> LaunchSpec

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

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
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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> 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
§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

§

fn simd_from(_simd: S, value: T) -> T

§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

§

fn simd_into(self, simd: S) -> T

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

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

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
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> Fruit for T
where T: Send + Downcast,

§

impl<T> MaybeSendSync for T
where T: Send + Sync + ?Sized,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T

§

impl<T> WasmNotSync for T
where T: Sync,