Struct ApplicationLaunch
pub struct ApplicationLaunch {
pub app_id: String,
pub content_hash: Option<String>,
pub action: Option<ActionAddress>,
}Expand description
Opening another installed app into the workspace, optionally with
verified content it opens read-only: Photos with a captured picture, a
player with a recorded clip. An app offers it as an action on its own
resources (ApplicationLaunch::spec); the host routes the admitted
invocation through the workspace broker, which stages the bytes and owns
the launched process. It can instead deliver a published resource action
after launch (ApplicationLaunch::with_action). The source app never
hands over a local path or starts a process itself.
Fields§
§app_id: StringThe installed app to open, by its id (so.tilo.photos).
content_hash: Option<String>The content address hash of what it opens. Without content or an action destination, the app opens empty.
action: Option<ActionAddress>An action to deliver after opening the app, rather than opening it empty.
Implementations§
§impl ApplicationLaunch
impl ApplicationLaunch
pub const TYPE: &'static str = "tilo.application.launch"
pub const TYPE: &'static str = "tilo.application.launch"
The operation type the host routes to the broker.
pub fn app(app_id: impl Into<String>) -> ApplicationLaunch
pub fn app(app_id: impl Into<String>) -> ApplicationLaunch
Open app_id empty.
pub fn with_action(
app_id: impl Into<String>,
resource: impl Into<String>,
action: impl Into<String>,
) -> ApplicationLaunch
pub fn with_action( app_id: impl Into<String>, resource: impl Into<String>, action: impl Into<String>, ) -> ApplicationLaunch
Open the app in the current workspace and invoke its published action. The workspace broker resolves and admits the destination contract.
pub fn target(&self, workspace: &str) -> RemoteActionTarget
pub fn target(&self, workspace: &str) -> RemoteActionTarget
Resolve the destination only from the host’s admitted workspace route.
pub fn with_content(
app_id: impl Into<String>,
content_hash: impl Into<String>,
) -> ApplicationLaunch
pub fn with_content( app_id: impl Into<String>, content_hash: impl Into<String>, ) -> ApplicationLaunch
Open app_id with the content whose hash is content_hash.
pub fn valid(&self) -> bool
pub fn valid(&self) -> bool
An app id of letters, digits, dots and dashes, and a content hash (when given) of 64 lowercase hex digits.
pub fn argument(&self) -> InvokeArgument
pub fn argument(&self) -> InvokeArgument
The argument the broker’s application open takes: the content
hash as its text, or nothing.
pub fn content_spec(
app_id: &str,
id: &str,
label: &str,
description: &str,
) -> ActionSpec
pub fn content_spec( app_id: &str, id: &str, label: &str, description: &str, ) -> ActionSpec
Opening app_id with content the caller names as the action’s
content_hash argument: a control that hands over whatever it
shows now.
pub fn spec(&self, id: &str, label: &str, description: &str) -> ActionSpec
pub fn spec(&self, id: &str, label: &str, description: &str) -> ActionSpec
This launch as the action id an app offers on a resource of its
own, taking no arguments.
Trait Implementations§
§impl Clone for ApplicationLaunch
impl Clone for ApplicationLaunch
§fn clone(&self) -> ApplicationLaunch
fn clone(&self) -> ApplicationLaunch
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for ApplicationLaunch
impl Debug for ApplicationLaunch
§impl<'de> Deserialize<'de> for ApplicationLaunch
impl<'de> Deserialize<'de> for ApplicationLaunch
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ApplicationLaunch, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ApplicationLaunch, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl PartialEq for ApplicationLaunch
impl PartialEq for ApplicationLaunch
§fn eq(&self, other: &ApplicationLaunch) -> bool
fn eq(&self, other: &ApplicationLaunch) -> bool
self and other values to be equal, and is used by ==.§impl Serialize for ApplicationLaunch
impl Serialize for ApplicationLaunch
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for ApplicationLaunch
impl StructuralPartialEq for ApplicationLaunch
Auto Trait Implementations§
impl Freeze for ApplicationLaunch
impl RefUnwindSafe for ApplicationLaunch
impl Send for ApplicationLaunch
impl Sync for ApplicationLaunch
impl Unpin for ApplicationLaunch
impl UnsafeUnpin for ApplicationLaunch
impl UnwindSafe for ApplicationLaunch
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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> 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>, which can then be
downcast into Box<dyn 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>, which 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> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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