Crate ijson[−][src]
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:
ctor
A global string cache is used when interning strings. This cache is normally initialized lazily on first use. Enabling thector
feature 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 likemockalloc
which try to detect memory leaks during tests.
Re-exports
pub use array::IArray; |
pub use number::INumber; |
pub use object::IObject; |
pub use string::IString; |
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
ijson | Construct an |
Structs
BoolMut | A proxy type which imitates a |
IValue | Stores an arbitrary JSON value. |
Enums
Destructured | Enum returned by |
DestructuredMut | Enum returned by |
DestructuredRef | Enum returned by |
ValueType | Enum which distinguishes the six JSON types. |
Traits
ValueIndex | Trait which abstracts over the various number and string types
which can be used to index into an |
Functions
from_value | Converts an |
to_value | Converts an arbitrary type to an |