pub enum Operation {
Call {
component: String,
input: Expression,
bind: Option<String>,
},
Invoke {
definition: String,
input: Expression,
bind: Option<String>,
},
Wait {
wait: WaitSpec,
},
Effect {
effect: String,
input: Expression,
occurrence: String,
bind: Option<String>,
},
Scope {
mode: ScopeMode,
body: Box<Region>,
bind: Option<String>,
},
}Expand description
Frozen structured operations. Complex frontend syntax lowers to these five semantic boundaries.
Variants§
Call
Call an abstract component.
Fields
§
input: ExpressionTyped input expression.
Invoke
Invoke another definition in the same immutable Plan.
Fields
§
input: ExpressionTyped invocation input expression.
Wait
Durably suspend.
Effect
Propose an abstract external effect.
Fields
§
input: ExpressionTyped argument expression.
Scope
Execute a nested transactional scope.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Operation
impl<'de> Deserialize<'de> for Operation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Operation
Auto Trait Implementations§
impl Freeze for Operation
impl RefUnwindSafe for Operation
impl Send for Operation
impl Sync for Operation
impl Unpin for Operation
impl UnsafeUnpin for Operation
impl UnwindSafe for Operation
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
Mutably borrows from an owned value. Read more