Declaraciones públicas de zig/src/snapshot.zig (spire-zig (SDK consumido)).
apps/docs/generated/zig/spire.jsonPágina generada desde
spire@spire-0.2.0-XvnrRek1BgCX4Bh8miuITCQgkn0FqeQrYYE3goFfDcQd (zig/src/root.zig). No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere.
Snapshot + delta (semántica de consumer-bus absorbida por spire): el
seguidor aplica un snapshot versionado y después deltas numeradas. Espejo
de packages/bus/src/snapshot.ts; vectores en vectors/snapshot-delta.json.
sin snapshot (o roto) → need_snapshot otra época → epoch_changed (queda roto) seq <= base → stale seq == base + 1 → applied seq > base + 1 → gap (queda roto hasta el siguiente snapshot) snapshot más viejo (misma época, seq menor) → stale
snapshot.Outcometype · línea 14
pub const Outcome = enumSin ///.
snapshot.MAX_EPOCH_LENconst · línea 16
pub const MAX_EPOCH_LEN = 64Sin ///.
snapshot.Followerfn · línea 18
pub fn Follower(comptime S: type, comptime D: type, comptime reduce: fn (S, D) S) typeSin ///.
snapshot.Follower.currentfn · línea 33
pub fn current(self: *const Self) ?Snull si el seguidor no tiene un estado válido.
snapshot.Follower.onSnapshotfn · línea 37
pub fn onSnapshot(self: *Self, ep: []const u8, seq: u64, state: S) error{EpochTooLong}!OutcomeSin ///.
snapshot.Follower.onDeltafn · línea 49
pub fn onDelta(self: *Self, ep: []const u8, seq: u64, delta: D) OutcomeSin ///.
snapshot.Topicfn · línea 68
pub fn Topic(comptime S: type, comptime D: type, comptime reduce: fn (S, D) S) typeProductor único (single-writer): estado + número de secuencia.
snapshot.Topic.publishfn · línea 74
pub fn publish(self: *Self, delta: D) u64Sin ///.