1use crate::{
6 tree::{
7 codec::{VcardCodec, encode::encode_component, mode::VcardEscaper},
8 value::node::VcardValueNode,
9 },
10 value::org::VcardOrg,
11};
12
13impl<'v> VcardCodec<'v> for VcardOrg<'v> {
14 fn decode(node: &'v VcardValueNode<'_>) -> Self {
15 let units = (0..node.component_count())
16 .map(|i| node.decode_scalar_at(i))
17 .collect();
18 VcardOrg(units)
19 }
20
21 fn encode(&self, escaper: VcardEscaper) -> VcardValueNode<'static> {
22 VcardValueNode::from_components(
23 self.0
24 .iter()
25 .map(|unit| encode_component(&[unit.as_ref()], escaper))
26 .collect(),
27 escaper,
28 )
29 }
30}