Skip to main content

ExecutionSnapshot

Struct ExecutionSnapshot 

Source
#[non_exhaustive]
pub struct ExecutionSnapshot {
Show 14 fields pub execution_id: ExecutionId, pub flow_id: Option<FlowId>, pub lane_id: LaneId, pub namespace: Namespace, pub public_state: PublicState, pub blocking_reason: Option<String>, pub blocking_detail: Option<String>, pub current_attempt: Option<AttemptSummary>, pub current_lease: Option<LeaseSummary>, pub current_waitpoint: Option<WaitpointId>, pub created_at: TimestampMs, pub last_mutation_at: TimestampMs, pub total_attempt_count: u32, pub tags: BTreeMap<String, String>,
}
Expand description

Engine-decoupled read-model for one execution.

Returned by ff_sdk::FlowFabricWorker::describe_execution. Consumers consult this struct instead of reaching into Valkey’s exec_core hash directly — the engine is free to rename fields or restructure storage under this surface.

#[non_exhaustive] — FF may add fields in minor releases without a semver break. Match with .. or use field-by-field construction.

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.
§execution_id: ExecutionId§flow_id: Option<FlowId>§lane_id: LaneId§namespace: Namespace§public_state: PublicState§blocking_reason: Option<String>

Blocking reason string (e.g. "waiting_for_worker", "waiting_for_delay", "waiting_for_dependencies"). None when the exec_core field is empty.

§blocking_detail: Option<String>

Free-form operator-readable detail explaining blocking_reason. None when the exec_core field is empty.

§current_attempt: Option<AttemptSummary>

Summary of the execution’s currently-active attempt. None when no attempt has been started (pre-claim) or when the exec_core attempt fields are all empty.

§current_lease: Option<LeaseSummary>

Summary of the execution’s currently-held lease. None when the execution is not held by a worker.

§current_waitpoint: Option<WaitpointId>

The waitpoint this execution is currently suspended on, if any.

§created_at: TimestampMs§last_mutation_at: TimestampMs

Timestamp of the last write that mutated exec_core. Engine-maintained.

§total_attempt_count: u32§tags: BTreeMap<String, String>

Caller-owned labels. The prefix ^[a-z][a-z0-9_]*\. is reserved for consumer metadata (e.g. cairn.task_id); FF guarantees it will not write keys matching that shape. FF’s own fields stay in snake_case without dots. Empty when no tags are set.

Implementations§

Source§

impl ExecutionSnapshot

Source

pub fn new( execution_id: ExecutionId, flow_id: Option<FlowId>, lane_id: LaneId, namespace: Namespace, public_state: PublicState, blocking_reason: Option<String>, blocking_detail: Option<String>, current_attempt: Option<AttemptSummary>, current_lease: Option<LeaseSummary>, current_waitpoint: Option<WaitpointId>, created_at: TimestampMs, last_mutation_at: TimestampMs, total_attempt_count: u32, tags: BTreeMap<String, String>, ) -> Self

Construct an ExecutionSnapshot. Present so downstream crates (ff-sdk’s describe_execution) can assemble the struct despite the #[non_exhaustive] marker. Prefer adding builder-style helpers here over loosening non_exhaustive.

Trait Implementations§

Source§

impl Clone for ExecutionSnapshot

Source§

fn clone(&self) -> ExecutionSnapshot

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 ExecutionSnapshot

Source§

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

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

impl PartialEq for ExecutionSnapshot

Source§

fn eq(&self, other: &ExecutionSnapshot) -> 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 ExecutionSnapshot

Source§

impl StructuralPartialEq for ExecutionSnapshot

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.