Struct ActionType
pub struct ActionType {
pub id: String,
pub label: String,
pub keywords: Vec<String>,
pub icon: Option<String>,
pub description: Option<String>,
pub state: ActionState,
pub locus: ExecutionLocus,
pub kind: OperationKind,
pub operation_type: Option<String>,
pub contract: ActionContract,
/* private fields */
}Expand description
What an action is, whichever resource offers it: its id, label, contract,
parameters and builders. Held once per (resource type, action) and shared
by every ActionSpec that binds it to a Target.
Read through the spec (spec.label, spec.contract); change one spec’s
with ActionSpec::type_mut, which copies a shared type first.
Fields§
§id: StringStable id within the resource (e.g. "like", "reply").
label: String§keywords: Vec<String>The other words people use for this action, in plain language (“mkdir” and “make directory” for New folder): search finds the action by them as it does by its label. Declared with the label, so every surface that lists the action knows them; never a list kept inside a search provider.
icon: Option<String>The action’s own picture beside its label, by its Lucide name.
description: Option<String>§state: ActionStateWhat the action’s row shows of the state it acts on: its badge, whether it flips that state in place, its shortcut. Published with the action and published anew whenever that state changes.
locus: ExecutionLocusDeclared execution locus (mirrors the concrete action’s
Action::locus), so the palette can show/route it before the
action is built.
kind: OperationKindWhether this mutates the shared document, performs an external effect, or changes only the invoking application’s local view.
operation_type: Option<String>The single protocol type routed for an effect/view operation. Keeping this beside the descriptor lets the host prove that publication and the widget’s handler registry agree, including prompted operations whose encoded value does not exist until arguments are bound.
contract: ActionContractMachine-readable safety, availability, lifecycle, and result contract.
Implementations§
§impl ActionType
impl ActionType
pub fn bind(self: &Arc<ActionType>, target: Target) -> ActionSpec
pub fn bind(self: &Arc<ActionType>, target: Target) -> ActionSpec
This type bound to target: the action one item offers.
Trait Implementations§
§impl Clone for ActionType
impl Clone for ActionType
§fn clone(&self) -> ActionType
fn clone(&self) -> ActionType
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 ActionType
impl !RefUnwindSafe for ActionType
impl Send for ActionType
impl Sync for ActionType
impl Unpin for ActionType
impl UnsafeUnpin for ActionType
impl !UnwindSafe for ActionType
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> 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<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