parser only.Expand description
§Syntax tree
Everything syntactic: the byte-faithful representation of a calendar and the bridges to and from the decoded model.
The hub is cst::IcalCst, a recursive tree of generic nodes
(line, param, value, leaf, with each line’s wire
layout on wire) that round-trips the wire bytes exactly.
On top of it sit the read-and-edit lenses: one per property in prop,
one per parameter in param, and the in-place edit cursor in value.
A property lens is implemented on the marker its property defines in
crate::prop, so the RFC contract and the syntax projection meet on one
type without the contract needing a parser.
Around them, codec projects between tree and decoded model, and the
three-way merge reconciles two divergent edits against
their common base.
Parsing is the only fallible step, so its error type lives here too.
This whole layer is gated behind the parser feature, so the decoded
model can be depended on without it.