枚举非常适合创建树形结构。比如:
enum Json {
Null,
Boolean(bool),
Number(f64),
String(String),
Array(Vec<Json>),
Object(Box<HashMap<String, Json>>)
}
这不是一个假想的例子,serde_json里面有类似的实现。
用Box包住HashMap让Json枚举的内存更紧凑。减小了枚举元素的内存占用大小。HashMap是占用大片内存的,但是
Box<HashMap>只占用一个字的空间??它仅仅是一个指向堆内存的指针。
