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
78
79
80
81
82
83
84
85
86
87
//! A JSON (compact) serde serializer for [`ser-write`](`ser_write`) and a JSON deserializer for convenience.
/*!
[`Serializer`] types:
| Serde type -> | JSON type
|-------------------|--------------------
| `()` | `null`
| `Unit` struct | `null`
| `bool` | `boolean`
| `NewType(T)` | `T` -> `JSON`
| `None` | `null`
| `Some(T)` | `T` -> `JSON`
| `u8`-`u64` | `number`
| `i8`-`i64` | `number`
| `f23`,`f64` | `number`
| `str` | `string`
| `bytes` | (configurable)
| `array`, `tuple` | `array`
| `seq`-like | `array`
| `map`-like | `object`
| `struct` | `object`
| `unit variant` | `string`
| `newtype variant` | `{"Name":T -> JSON}`
| `tuple variant` | `{"Name": array}`
| `struct variant` | `{"Name": object}`
* [`Serializer`] supports serializing map keys as JSON strings from integers, chars, bools
and C-like enums.
[`Deserializer`] types:
| JSON type -> | Serde type (depending on context)
|-------------------|----------------------------------------
| `null` | `unit`,`none`,`NaN`
| `boolean` | `bool`
| `number` | `f64`,`f32`,`u8`-`u64`,`i8`-`i64`
| `string` | `str`,`bytes` (configurable),`enum variant`
| `array` | `array`,`tuple`,`tuple struct`,`typle variant`,`seq-like`,`struct`
| `object` | `enum variant`,`struct variant`,`map-like`,`struct`
| `T` | `NewType(JSON -> T)`, `Some(JSON -> T)`
* [`Deserializer`] supports self-describing formats ([`deserialize_any`]).
* [`Deserializer`] deserializes structs from both JSON objects or arrays.
* [`Deserializer`] deserializes maps with integer, char, bool or C-like enum keys
from JSON object's string keys.
[`Serializer`]: ser::Serializer
[`Deserializer`]: de::Deserializer
[`deserialize_any`]: serde::de::Deserializer::deserialize_any
*/
extern crate std;
extern crate alloc;
pub use ser_write;
pub use SerWrite;
pub use ;
pub use ;
pub use ;