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
impl LaunchSpec
pub fn runtime_attachment(self, policy: fn(&LaunchArgs) -> bool) -> 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
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
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
pub fn definition(&self) -> &'static ApplicationDefinition
The application this specification launches.
pub fn component_host( self, prepare: fn(&ApplicationDefinition, &LaunchArgs) -> Result<PreparedComponentInputs, LaunchError>, ) -> LaunchSpec
pub fn native_services(self) -> 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
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>
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>
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
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
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
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
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
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
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
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
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
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
impl Clone for LaunchSpec
§fn clone(&self) -> LaunchSpec
fn clone(&self) -> LaunchSpec
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for LaunchSpec
impl RefUnwindSafe for LaunchSpec
impl Send for LaunchSpec
impl Sync for LaunchSpec
impl Unpin for LaunchSpec
impl UnsafeUnpin for LaunchSpec
impl UnwindSafe for LaunchSpec
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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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