ical/tree/prop/
structured_data.rs1use crate::{
6 prop::IcalPropKind,
7 tree::{
8 line::IcalLine,
9 prop::{lens::IcalPropLens, spec::IcalPropSpec},
10 value::cursor::IcalValueCursor,
11 },
12 value::text::IcalText,
13 version::IcalVersion,
14};
15
16#[allow(non_camel_case_types)]
18pub struct STRUCTURED_DATA;
19
20impl IcalPropLens for STRUCTURED_DATA {
21 type Target<'v> = IcalText<'v>;
22
23 type Cursor<'c, 'a>
24 = IcalValueCursor<'c, 'a>
25 where
26 'a: 'c;
27
28 fn cursor<'c, 'a>(line: &'c mut IcalLine<'a>) -> IcalValueCursor<'c, 'a> {
29 IcalValueCursor { line }
30 }
31}
32
33impl IcalPropSpec for STRUCTURED_DATA {
34 const KIND: IcalPropKind = IcalPropKind::StructuredData;
35
36 fn allowed_versions() -> &'static [IcalVersion] {
37 &[IcalVersion::V2_0]
38 }
39}