Expand description
Cache raw packs by their exact selected object set.
Before every call, including hits, hosts must complete authorization, visible-ref/reachability checks, selection and traversal budgets. ACK-only rounds and shallow-list probes do not use this cache. Generate their control frames separately: cached bytes contain only PACK data.
Structs§
- Buffers
- Caller-owned storage. Hits use IDs and
byte_limitbut do not need pack or read scratch. Misses are bounded by both pack storage andbyte_limit. - Fixed
Cache - One immutable pack in caller-owned storage. Capacity failures preserve the previous entry. Disabling bypasses reads and insertions, retaining the entry until explicit eviction or replacement. Counters saturate at u64::MAX.
- Key
- Stable, owned identity for a stored, non-delta selected pack. Serialization uses explicit numeric codes and big-endian integers, independent of Rust ABI.
- Statistics
Enums§
- Outcome
- Selection
- Explicit pack selection. A server’s absent selection can mean an ACK-only
round or probe, so callers must decide that a pack is required before using
this type.
Indices(&[])deliberately encodes an empty pack.
Traits§
- Pack
Cache - Hosts own persistence, eviction and concurrency. A failed insertion must
preserve the old entry. Successful insertion publishes complete immutable
bytes atomically. Returned bytes are always verified by
writebefore use.
Functions§
- write
- Key/preflight errors, backend errors and corruption propagate with no output. A miss is encoded and verified before insertion. Sink errors may leave partial output and a valid inserted entry; discard that output and retry. Key/integrity work is O(pack bytes + n log n), with n caller ID slots; graph selection and authorization happen separately before this function.