use serde::{self, Serialize}; use super::Value; impl Serialize for Value { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, { match *self { Value::Null => serializer.serialize_unit(), Value::Bool(b) => serializer.serialize_bool(b), Value::Number(ref n) => n.serialize(serializer), Value::String(ref s) => serializer.serialize_str(s), Value::Sequence(ref seq) => seq.serialize(serializer), Value::Mapping(ref hash) => { use serde::ser::SerializeMap; let mut map = serializer.serialize_map(Some(hash.len()))?; for (k, v) in hash { map.serialize_entry(k, v)?; } map.end() } } } }