pub enum Canvas {
Single(Signature),
Chain(Vec<Canvas>),
Group(Vec<Canvas>),
Chord {
group: Vec<Canvas>,
callback: Box<Canvas>,
},
}Expand description
A composable workflow description.
Variants§
Single(Signature)
A single task invocation.
Chain(Vec<Canvas>)
Execute tasks sequentially; each task’s result is passed to the next.
Group(Vec<Canvas>)
Execute tasks in parallel.
Chord
A group with a callback that fires after all members complete.
Implementations§
Source§impl Canvas
impl Canvas
Sourcepub async fn apply(
&self,
broker: &(dyn Broker + 'static),
backend: &(dyn ResultBackend + 'static),
) -> Result<WorkflowHandle, KojinError>
pub async fn apply( &self, broker: &(dyn Broker + 'static), backend: &(dyn ResultBackend + 'static), ) -> Result<WorkflowHandle, KojinError>
Submit this workflow for execution.
- Single: enqueues immediately.
- Chain: enqueues first task with remaining steps stored in headers.
- Group: enqueues all members in parallel with group metadata.
- Chord: like Group but attaches a chord callback.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Canvas
impl<'de> Deserialize<'de> for Canvas
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Canvas, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Canvas, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for Canvas
impl Serialize for Canvas
Source§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,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for Canvas
impl RefUnwindSafe for Canvas
impl Send for Canvas
impl Sync for Canvas
impl Unpin for Canvas
impl UnsafeUnpin for Canvas
impl UnwindSafe for Canvas
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
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 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>
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