Expand description
Canonical, deterministic serialization for cache-key hashing.
Cache keys must be identical across processes, machines, and library
versions. Ordinary serializer output is not: serde_json encodes
HashMaps in random iteration order, and pickle-style formats depend
on traversal order and library version. This module produces a
canonical CBOR encoding (RFC 8949 §4.2 core deterministic encoding)
with dCBOR-style float canonicalization:
- map keys sorted bytewise by their encoded form (duplicates are an error)
- a single canonical NaN bit pattern
-0.0normalized to+0.0
Use canonical_bytes / hash_canonical for anything that feeds a
CacheKey; never hash raw serializer output.
Functions§
- canonical_
bytes - Encode
valueto canonical CBOR bytes. - hash_
canonical - Hash
value’s canonical CBOR encoding.