Expand description
Snapshot and delta encoding/decoding for the sdec codec.
This is the main codec crate that ties together bitstream, wire, and schema to provide full snapshot and delta encoding/decoding capabilities.
§Features
- Full snapshot encoding/decoding
- Delta encoding relative to a baseline
- Baseline history management
- Entity create/update/destroy operations
- Per-component and per-field change masks
§Design Principles
- Correctness first - All invariants are documented and tested.
- No steady-state allocations - Uses caller-provided buffers.
- Deterministic - Same inputs produce same outputs.
Structs§
- Baseline
Store - A fixed-capacity ring buffer of baselines keyed by tick.
- Codec
Limits - Codec-specific limits enforced during snapshot decoding.
- Codec
Scratch - Scratch buffers for delta encoding.
- Component
Snapshot - A component snapshot.
- Delta
Decoded - Delta
Update Component - Delta
Update Entity - Entity
Id - A stable entity identifier.
- Entity
Snapshot - An entity snapshot.
- Session
Encoder - Encoder context for delta packets that use caller-provided change lists.
- Session
State - Session state for compact headers.
- Snapshot
- A decoded snapshot.
- Snapshot
Tick - A simulation tick number.
- Wire
Limits - Wire-level limits for packet decoding.
Enums§
- Baseline
Error - Errors that can occur when inserting into the baseline store.
- Codec
Error - Errors that can occur during snapshot/delta encoding/decoding.
- Compact
Header Mode - Compact header mode negotiated via session init.
- Field
Value - A field value in decoded form.
- Limit
Kind - Specific limit that was exceeded.
- Mask
Kind - Mask validation error kinds.
- Mask
Reason - Details for invalid mask errors.
- Value
Reason - Details for invalid value errors.
Functions§
- apply_
delta_ snapshot - Applies a delta snapshot to a baseline snapshot.
- apply_
delta_ snapshot_ from_ packet - Applies a delta snapshot from a parsed wire packet.
- decode_
delta_ packet - Decodes a delta packet without applying it to a baseline.
- decode_
full_ snapshot - Decodes a full snapshot from raw packet bytes.
- decode_
full_ snapshot_ from_ packet - Decodes a full snapshot from a parsed wire packet.
- decode_
session_ init_ packet - Decodes a session init packet into session state.
- decode_
session_ packet - Decodes a compact packet using session state.
- encode_
delta_ from_ changes - Encodes a delta snapshot from precomputed change lists.
- encode_
delta_ snapshot - Encodes a delta snapshot into the provided output buffer.
- encode_
delta_ snapshot_ for_ client - Encodes a delta snapshot for a client-specific view.
- encode_
delta_ snapshot_ for_ client_ session - Encodes a client delta snapshot using a compact session header.
- encode_
delta_ snapshot_ for_ client_ session_ with_ scratch - Encodes a client delta snapshot using a compact session header.
- encode_
delta_ snapshot_ for_ client_ with_ scratch - Encodes a delta snapshot for a client-specific view using reusable scratch buffers.
- encode_
delta_ snapshot_ from_ updates - Encodes a delta snapshot using precomputed change lists.
- encode_
delta_ snapshot_ with_ scratch - Encodes a delta snapshot using reusable scratch buffers.
- encode_
full_ snapshot - Encodes a full snapshot into the provided output buffer.
- encode_
session_ init_ packet - Encodes a session init packet.
- select_
baseline_ tick - Selects the latest baseline tick at or before the ack tick.
Type Aliases§
- Codec
Result - Result type for codec operations.