pub struct GraphBuilder { /* private fields */ }Expand description
Builder for creating graphs.
The builder owns all graph data until GraphBuilder::build validates it
and produces an immutable Graph.
Implementations§
Source§impl GraphBuilder
impl GraphBuilder
pub fn new(id: impl Into<String>) -> Self
pub fn add_task(self, task: Arc<dyn Task>) -> Self
pub fn add_edge(self, from: impl Into<String>, to: impl Into<String>) -> Self
Sourcepub fn add_conditional_edge<F>(
self,
from: impl Into<String>,
condition: F,
yes: impl Into<String>,
no: impl Into<String>,
) -> Self
pub fn add_conditional_edge<F>( self, from: impl Into<String>, condition: F, yes: impl Into<String>, no: impl Into<String>, ) -> Self
Add a conditional edge with an explicit else branch.
yes is taken when condition(ctx) returns true; otherwise no is chosen.
Sourcepub fn set_start_task(self, task_id: impl Into<String>) -> Self
pub fn set_start_task(self, task_id: impl Into<String>) -> Self
Set the starting task. Validated in GraphBuilder::build; defaults
to the first task added.
Sourcepub fn with_task_timeout(self, timeout: Duration) -> Self
pub fn with_task_timeout(self, timeout: Duration) -> Self
Set the timeout applied to each task execution (default: 5 minutes).
Sourcepub fn with_max_execution_steps(self, max: usize) -> Self
pub fn with_max_execution_steps(self, max: usize) -> Self
Limit the number of chained ContinueAndExecute steps within a single
execute_session call, guarding against infinite loops in cyclic
graphs (default: unlimited).
Sourcepub fn build(self) -> Result<Graph>
pub fn build(self) -> Result<Graph>
Validate the graph and produce an immutable Graph.
§Errors
GraphError::InvalidEdgeif an edge references a task that was never addedGraphError::TaskNotFoundifset_start_tasknames an unknown task
Auto Trait Implementations§
impl !RefUnwindSafe for GraphBuilder
impl !UnwindSafe for GraphBuilder
impl Freeze for GraphBuilder
impl Send for GraphBuilder
impl Sync for GraphBuilder
impl Unpin for GraphBuilder
impl UnsafeUnpin for GraphBuilder
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