Expand description
This crate offers a replacement for serde-json’s Value type, which is
significantly more memory efficient.
As a ballpark figure, it will typically use half as much memory as
serde-json when deserializing a value and the memory footprint of cloning
a value is more than 7x smaller.
The primary type exposed by this crate is the IValue type. It is guaranteed
to be pointer-sized and has a niche (so Option<IValue> is also guaranteed
to be pointer-sized).
Cargo features:
ctorA global string cache is used when interning strings. This cache is normally initialized lazily on first use. Enabling thectorfeature will cause it to be eagerly initialized on startup. There is no performance benefit to this, but it can help avoid false positives from tools likemockallocwhich try to detect memory leaks during tests.
Re-exports§
Modules§
- array
- Functionality relating to the JSON array type
- number
- Functionality relating to the JSON number type
- object
- Functionality relating to the JSON object type
- string
- Functionality relating to the JSON string type
Macros§
Structs§
Enums§
- Destructured
- Enum returned by
IValue::destructureto allow matching on the type of an ownedIValue. - Destructured
Mut - Enum returned by
IValue::destructure_mutto allow matching on the type of a mutable reference to anIValue. - Destructured
Ref - Enum returned by
IValue::destructure_refto allow matching on the type of a reference to anIValue. - Value
Type - Enum which distinguishes the six JSON types.
Traits§
- Value
Index - Trait which abstracts over the various number and string types
which can be used to index into an
IValue.
Functions§
- from_
value - Converts an
IValueto an arbitrary type using that type’sserde::Deserializeimplementation. - to_
value - Converts an arbitrary type to an
IValueusing that type’sserde::Serializeimplementation.