Skip to main content

Module selected

Module selected 

Source
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_limit but do not need pack or read scratch. Misses are bounded by both pack storage and byte_limit.
FixedCache
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§

PackCache
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 write before 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.