1use alloc::vec;
7
8use crate::{
9 tree::{
10 codec::{Codec, encode::encode_component, mode::Escaper},
11 value::node::IcalValueNode,
12 },
13 value::geo::IcalGeo,
14};
15
16impl<'v> Codec<'v> for IcalGeo<'v> {
17 fn decode(node: &'v IcalValueNode<'_>) -> Self {
18 IcalGeo {
19 latitude: node.decode_component(0),
20 longitude: node.decode_component(1),
21 }
22 }
23
24 fn encode(&self, escaper: Escaper) -> IcalValueNode<'static> {
25 IcalValueNode::from_components(
26 vec![
27 encode_component(&[self.latitude.as_ref()], escaper),
28 encode_component(&[self.longitude.as_ref()], escaper),
29 ],
30 escaper,
31 )
32 }
33}