1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//! # Calendar
//!
//! The decoded calendar: a version plus the `VCALENDAR`'s properties and nested
//! components.
//!
//! [`Ical`] is the top of the decoded model, the semantic counterpart of a whole
//! [`IcalCst`](crate::tree::cst::IcalCst). It is a `VCALENDAR` with its
//! [`version`](Ical::version) hoisted out of the property list (the `VERSION`
//! line is the envelope indicator, not a free property), its remaining
//! calendar-level [`props`](Ical::props) (`PRODID`, `CALSCALE`, `METHOD`, ...),
//! and its nested [`components`](Ical::components) (`VEVENT`, `VTODO`,
//! `VTIMEZONE`, ...), each a recursive [`IcalComponent`].
//!
//! [`IcalComponent`]: crate::component::IcalComponent
//!
//! Build a calendar directly from its public fields; strict construction and
//! conformance checking live in the syntax layer
//! ([`validate`](crate::tree::ical::validate)), which this module does not
//! depend on: pure model, no [`crate::tree`].
use Vec;
use crate::;
/// A decoded calendar: a `VCALENDAR` with its version hoisted out.