Skip to main content

EdgeSnapshot

Struct EdgeSnapshot 

Source
#[non_exhaustive]
pub struct EdgeSnapshot { pub edge_id: EdgeId, pub flow_id: FlowId, pub upstream_execution_id: ExecutionId, pub downstream_execution_id: ExecutionId, pub dependency_kind: String, pub satisfaction_condition: String, pub data_passing_ref: Option<String>, pub edge_state: String, pub created_at: TimestampMs, pub created_by: String, }
Expand description

Engine-decoupled read-model for one dependency edge.

Returned by ff_sdk::FlowFabricWorker::describe_edge, list_incoming_edges, and list_outgoing_edges. Consumers consult this struct instead of reaching into Valkey’s per-flow edge: hash directly — the engine is free to rename hash fields or restructure key layout under this surface.

#[non_exhaustive] — FF may add fields in minor releases without a semver break. Match with .. or use EdgeSnapshot::new.

§Fields

The struct mirrors the immutable edge record written by ff_stage_dependency_edge (see lua/flow.lua). The flow-scoped edge hash is only ever written once, at staging time; per-execution resolution state lives on a separate dep:<edge_id> hash and is not surfaced here. The edge_state field therefore reflects the staging-time literal (currently pending), not the downstream execution’s dep-edge state.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§edge_id: EdgeId§flow_id: FlowId§upstream_execution_id: ExecutionId§downstream_execution_id: ExecutionId§dependency_kind: String

The dependency_kind literal (e.g. success_only) from stage_dependency_edge. Preserved as-is; FF does not interpret it on reads.

§satisfaction_condition: String

The satisfaction-condition literal stamped at staging time (e.g. all_required).

§data_passing_ref: Option<String>

Optional opaque handle to a data-passing artifact. None when the stored field is empty (the most common case).

§edge_state: String

Edge-state literal on the flow-scoped edge hash. Written once at staging as pending; this hash is immutable on the flow side. Per-execution resolution state is tracked separately on the child’s dep:<edge_id> hash.

§created_at: TimestampMs§created_by: String

Origin of the edge (e.g. engine). Preserved as-is.

Implementations§

Source§

impl EdgeSnapshot

Source

pub fn new( edge_id: EdgeId, flow_id: FlowId, upstream_execution_id: ExecutionId, downstream_execution_id: ExecutionId, dependency_kind: String, satisfaction_condition: String, data_passing_ref: Option<String>, edge_state: String, created_at: TimestampMs, created_by: String, ) -> Self

Construct an EdgeSnapshot. Present so downstream crates (ff-sdk’s describe_edge / list_*_edges) can assemble the struct despite the #[non_exhaustive] marker.

Trait Implementations§

Source§

impl Clone for EdgeSnapshot

Source§

fn clone(&self) -> EdgeSnapshot

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 Debug for EdgeSnapshot

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for EdgeSnapshot

Source§

fn eq(&self, other: &EdgeSnapshot) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for EdgeSnapshot

Source§

impl StructuralPartialEq for EdgeSnapshot

Auto Trait Implementations§

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, 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> 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.