Skip to main content

Edge

Struct Edge 

Source
pub struct Edge<T: State> {
    pub from: String,
    pub to: String,
    pub condition: Option<EdgeCondition<T>>,
    pub condition_name: Option<String>,
    pub routing_condition: Option<Condition<T>>,
}
Expand description

A compiled edge (connection) between two nodes, with optional condition.

Fields§

§from: String

Source node name

§to: String

Target node name

§condition: Option<EdgeCondition<T>>

Optional condition function (legacy string-based conditions)

§condition_name: Option<String>

The original condition name from config (for reference)

§routing_condition: Option<Condition<T>>

Type-safe routing condition (new DSL-based conditions)

Implementations§

Source§

impl<T: State> Edge<T>

Source

pub fn new( from: impl Into<String>, to: impl Into<String>, condition: Option<EdgeCondition<T>>, ) -> Self

Create a new edge from source to target.

Source

pub fn with_condition_name(self, name: impl Into<String>) -> Self

Attach the original condition name (for reference).

Source

pub fn with_routing_condition(self, condition: Condition<T>) -> Self

Set the type-safe routing condition for this edge

Source

pub async fn should_take(&self, state: &T) -> Result<bool>

Check if this edge should be taken given the current state.

Evaluates both legacy conditions (EdgeCondition) and new conditions (Condition DSL). Returns true if the edge is unconditional or if the condition evaluates to true.

Source

pub async fn get_next_node(&self, state: &T) -> Result<Option<String>>

Get the next node if the condition specifies one.

Returns the explicitly specified next node, or None to use the default target.

Trait Implementations§

Source§

impl<T: Clone + State> Clone for Edge<T>

Source§

fn clone(&self) -> Edge<T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: State> Debug for Edge<T>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Edge<T>

§

impl<T> !RefUnwindSafe for Edge<T>

§

impl<T> Send for Edge<T>

§

impl<T> Sync for Edge<T>

§

impl<T> Unpin for Edge<T>

§

impl<T> UnsafeUnpin for Edge<T>

§

impl<T> !UnwindSafe for Edge<T>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,