pub struct FlowFrameKernel { /* private fields */ }Expand description
Concrete implementation of FlowFrameMutator.
Implementations§
Source§impl FlowFrameKernel
impl FlowFrameKernel
pub fn new(run_store: Arc<dyn MobRunStore>) -> Self
Trait Implementations§
Source§impl FlowFrameMutator for FlowFrameKernel
impl FlowFrameMutator for FlowFrameKernel
Source§fn start_frame<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
spec: &'life3 FrameSpec,
) -> Pin<Box<dyn Future<Output = Result<FrameSnapshot, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn start_frame<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
spec: &'life3 FrameSpec,
) -> Pin<Box<dyn Future<Output = Result<FrameSnapshot, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Start a frame from a
FrameSpec (arbitrary DAG). Read moreSource§fn admit_next_ready_node<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<KernelEffect>>, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn admit_next_ready_node<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<KernelEffect>>, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Admit the next ready node in the frame. Returns the effects emitted (e.g.
AdmitStepWork or StartLoopNode), or None if the queue was empty.Source§fn admit_next_ready_node_with_retry<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
max_retries: usize,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<KernelEffect>>, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn admit_next_ready_node_with_retry<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
max_retries: usize,
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<KernelEffect>>, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Admit the next ready node with up to
max_retries CAS retries. Read moreSource§fn complete_step<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
opts: StepCompletionOpts<'life3>,
) -> Pin<Box<dyn Future<Output = Result<(), MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn complete_step<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
opts: StepCompletionOpts<'life3>,
) -> Pin<Box<dyn Future<Output = Result<(), MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Complete a step node and record its output, with CAS retry.
Source§fn complete_node<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
node_id: &'life3 FlowNodeId,
) -> Pin<Box<dyn Future<Output = Result<bool, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn complete_node<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
node_id: &'life3 FlowNodeId,
) -> Pin<Box<dyn Future<Output = Result<bool, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Mark a node as completed. Returns
true if the CAS succeeded.Source§fn fail_node<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
node_id: &'life3 FlowNodeId,
) -> Pin<Box<dyn Future<Output = Result<bool, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn fail_node<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
node_id: &'life3 FlowNodeId,
) -> Pin<Box<dyn Future<Output = Result<bool, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Mark a node as failed. Returns
true if the CAS succeeded.Source§fn skip_node<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
node_id: &'life3 FlowNodeId,
) -> Pin<Box<dyn Future<Output = Result<bool, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn skip_node<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
node_id: &'life3 FlowNodeId,
) -> Pin<Box<dyn Future<Output = Result<bool, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Mark a node as skipped. Returns
true if the CAS succeeded.Source§fn terminalize_frame<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
) -> Pin<Box<dyn Future<Output = Result<bool, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn terminalize_frame<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
) -> Pin<Box<dyn Future<Output = Result<bool, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Terminalize the frame as completed. Returns
true if the CAS succeeded.Source§fn cancel_node<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
node_id: &'life3 FlowNodeId,
) -> Pin<Box<dyn Future<Output = Result<bool, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn cancel_node<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
run_id: &'life1 RunId,
frame_id: &'life2 FrameId,
node_id: &'life3 FlowNodeId,
) -> Pin<Box<dyn Future<Output = Result<bool, MobError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Mark a node as canceled. Returns
true if the CAS succeeded.Auto Trait Implementations§
impl Freeze for FlowFrameKernel
impl !RefUnwindSafe for FlowFrameKernel
impl Send for FlowFrameKernel
impl Sync for FlowFrameKernel
impl Unpin for FlowFrameKernel
impl UnsafeUnpin for FlowFrameKernel
impl !UnwindSafe for FlowFrameKernel
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> 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