use crate::{
tree::{
codec::{VcardCodec, encode::encode_component, mode::VcardEscaper},
value::node::VcardValueNode,
},
value::org::VcardOrg,
};
impl<'v> VcardCodec<'v> for VcardOrg<'v> {
fn decode(node: &'v VcardValueNode<'_>) -> Self {
let units = (0..node.component_count())
.map(|i| node.decode_scalar_at(i))
.collect();
VcardOrg(units)
}
fn encode(&self, escaper: VcardEscaper) -> VcardValueNode<'static> {
VcardValueNode::from_components(
self.0
.iter()
.map(|unit| encode_component(&[unit.as_ref()], escaper))
.collect(),
escaper,
)
}
}