Skip to main content

Module entry_meta_value

Module entry_meta_value 

Source
Expand description

EntryMetaValue — a no_std + alloc substitute for serde_json::Value.

§Design rationale

serde_json::Value allocates owned String/Vec at every node and unconditionally pulls std. EntryMetaValue instead wraps payloads in Arc so that clones are O(1) reference-count bumps, fitting the tinyquant-core no_std + alloc posture.

§Float equality semantics

PartialEq for EntryMetaValue::Float uses bit-exact comparison (a.to_bits() == b.to_bits()), not IEEE 754 semantics. This means NaN == NaN returns true, mirroring Python’s dict key-stability contract: a metadata round-trip must not drop NaN keys or values.

Warning: this diverges from IEEE 754. Do not use EntryMetaValue::Float as a numeric comparison type; use it only for metadata storage and identity checks.

Enums§

EntryMetaValue
A no_std-compatible JSON-like value for VectorEntry metadata.