#[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
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: StringThe dependency_kind literal (e.g. success_only) from
stage_dependency_edge. Preserved as-is; FF does not interpret
it on reads.
satisfaction_condition: StringThe 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: StringEdge-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: StringOrigin of the edge (e.g. engine). Preserved as-is.
Implementations§
Source§impl EdgeSnapshot
impl EdgeSnapshot
Sourcepub 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
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
impl Clone for EdgeSnapshot
Source§fn clone(&self) -> EdgeSnapshot
fn clone(&self) -> EdgeSnapshot
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more