Referencia Zigspire-zig (SDK consumido)

zig/src/snapshot.zig

Declaraciones públicas de zig/src/snapshot.zig (spire-zig (SDK consumido)).

ImplementadoSin versión del tren todavía· generada desde apps/docs/generated/zig/spire.json

Página generada desde spire@spire-0.2.0-XvnrRek1BgCX4Bh8miuITCQgkn0FqeQrYYE3goFfDcQd (zig/src/root.zig). No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla 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.Outcome

type · línea 14

pub const Outcome = enum

Sin ///.

snapshot.MAX_EPOCH_LEN

const · línea 16

pub const MAX_EPOCH_LEN = 64

Sin ///.

snapshot.Follower

fn · línea 18

pub fn Follower(comptime S: type, comptime D: type, comptime reduce: fn (S, D) S) type

Sin ///.

snapshot.Follower.current

fn · línea 33

pub fn current(self: *const Self) ?S

null si el seguidor no tiene un estado válido.

snapshot.Follower.onSnapshot

fn · línea 37

pub fn onSnapshot(self: *Self, ep: []const u8, seq: u64, state: S) error{EpochTooLong}!Outcome

Sin ///.

snapshot.Follower.onDelta

fn · línea 49

pub fn onDelta(self: *Self, ep: []const u8, seq: u64, delta: D) Outcome

Sin ///.

snapshot.Topic

fn · línea 68

pub fn Topic(comptime S: type, comptime D: type, comptime reduce: fn (S, D) S) type

Productor único (single-writer): estado + número de secuencia.

snapshot.Topic.publish

fn · línea 74

pub fn publish(self: *Self, delta: D) u64

Sin ///.