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.
//!
//! What remains is its calendar-level [`props`](Ical::props) (`PRODID`,
//! `CALSCALE`, `METHOD`, ...) and its nested [`components`](Ical::components)
//! (`VEVENT`, `VTODO`, `VTIMEZONE`, ...), each a recursive [`IcalComponent`].
//!
//! Build a calendar directly from its public fields; strict construction is
//! the [`builder`](crate::builder) and conformance checking the
//! [`validator`](crate::validator). Pure model, no [`crate::tree`].
//!
//! [`IcalComponent`]: crate::component::IcalComponent
use Vec;
use crate::;
/// A decoded calendar: a `VCALENDAR` with its version hoisted out.