Struct steno::DagBuilder

source ·
pub struct DagBuilder { /* private fields */ }
Expand description

Used to build a Dag that can then be executed as either a saga or subsaga

Use DagBuilder::append() and DagBuilder::append_parallel() to add nodes to the graph. Use DagBuilder::build() to finish construction and build a Dag.

Implementations§

source§

impl DagBuilder

source

pub fn new(saga_name: SagaName) -> DagBuilder

Begin building a DAG for a saga or subsaga

source

pub fn append(&mut self, user_node: Node)

Adds a new node to the graph to be run after the most-recently-appended node(s)

The new node will depend on completion of all actions that were added in the last call to append or append_parallel. The idea is to append a sequence of steps that run one after another.

source

pub fn append_parallel(&mut self, user_nodes: Vec<Node>)

Adds a set of nodes to the graph that depend on the most-recently-appended node(s) but that can be executed concurrently with each other

The new nodes will individually depend on completion of all actions that were added in the last call to append() or append_parallel().

source

pub fn build(self) -> Result<Dag, DagBuilderError>

Return the constructed DAG

Trait Implementations§

source§

impl Debug for DagBuilder

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> SendSyncUnwindSafe for Twhere T: Send + Sync + UnwindSafe + ?Sized,