#[non_exhaustive]pub struct AppendFrameOutcome {
pub stream_id: String,
pub frame_count: u64,
pub summary_version: Option<u64>,
}Expand description
Outcome of an append_frame() call.
RFC-012 §R7.2.1: moved from ff_sdk::task::AppendFrameOutcome
to ff_core::backend::AppendFrameOutcome so it is nameable by the
EngineBackend::append_frame trait return. ff_sdk::task retains
a pub use shim preserving the ff_sdk::task::AppendFrameOutcome
path through 0.4.x.
Derive set matches the FailOutcome precedent
(Clone, Debug, PartialEq, Eq). Not #[non_exhaustive]:
construction is internal to the backend today (parser in
ff-backend-valkey), and no external constructors are anticipated
(consumer-shape evidence per §R7.2.1 / MN3).
stream_id: String is a stable shape commitment — a future typed
StreamId newtype would be its own breaking change (§R7.5.6 / MD2).
RFC-015 §9 made this type #[non_exhaustive] so the new
summary_version: Option<u64> field (populated only for
StreamMode::DurableSummary appends) can land additively and
future per-mode outcome fields can follow. Construct via
Self::new + the chainable setters; cross-crate consumers cannot
use struct-literal construction.
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.stream_id: StringValkey Stream entry ID assigned to this frame (e.g. 1234567890-0).
frame_count: u64Total frame count in the stream after this append.
summary_version: Option<u64>Rolling summary version after the delta applied, populated
only for StreamMode::DurableSummary appends (RFC-015 §3.3
step 6). None for StreamMode::Durable /
StreamMode::BestEffortLive appends — callers that need
“total deltas applied” read this field.
Implementations§
Source§impl AppendFrameOutcome
impl AppendFrameOutcome
Sourcepub fn new(stream_id: impl Into<String>, frame_count: u64) -> Self
pub fn new(stream_id: impl Into<String>, frame_count: u64) -> Self
Build an outcome with the mandatory stream_id / frame_count
fields. summary_version defaults to None — call
Self::with_summary_version for StreamMode::DurableSummary
appends.
Sourcepub fn with_summary_version(self, version: u64) -> Self
pub fn with_summary_version(self, version: u64) -> Self
Attach a rolling summary version (RFC-015 §9).
Trait Implementations§
Source§impl Clone for AppendFrameOutcome
impl Clone for AppendFrameOutcome
Source§fn clone(&self) -> AppendFrameOutcome
fn clone(&self) -> AppendFrameOutcome
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more