1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//! 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:
//!
//! - `arbitrary_precision`
//! Store JSON numbers as their exact decimal value rather than rounding to `f64`. A
//! short decimal is packed inline; a larger or more precise one spills to a heap
//! arbitrary-precision decimal. With this on, `"0.1"` is the exact tenth — a *different*
//! number from the `f64` `0.1` — and a magnitude beyond `f64`'s range is representable.
//! It also switches deserialization to preserve the exact literal (via serde_json's own
//! `arbitrary_precision`). Off by default; without it every number is exactly an `f64`.
//!
//! - `ctor`
//! A global string cache is used when interning strings. This cache is normally
//! initialized lazily on first use. Enabling the `ctor` 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 like `mockalloc` which try to detect memory leaks during tests.
//!
//! - `indexmap`
//! Adds conversions between [`IObject`] and `indexmap`'s `IndexMap`.
//!
//! - `broken-borrow-impl-compat`
//! Adds `Borrow<str>` for [`IString`], for libraries that require it. Unsound to rely on
//! for hash-map keys (see the impl's own note); enable only as a temporary measure.
//!
//! - `tracing`
//! Forwards to `mockalloc`'s `tracing` feature, for allocation tracing under tests.
pub use codegen_probes;
pub use IArray;
pub use ;
pub use IObject;
pub use IString;
pub use ;
pub use from_value;
pub use to_value;