Skip to main content

Module codec

Module codec 

Source
Available on crate feature parser only.
Expand description

§Codec

The bytes-to-model bridge, in both directions and at both levels. The only part of crate::tree that consults the calendar version.

decode projects a raw syntax tree onto the decoded model and encode projects it back; that is the structural level. Underneath, at the value-string level, escape and unescape apply and resolve the RFC 5545 3.3.11 value escapes, keyed by the mode Escaper, and every value leaf the structural codecs touch runs through them. Content transfer encodings (QUOTED-PRINTABLE, BASE64) and CHARSET are never resolved here: the core transforms no content, leaving that to the opt-in feature helpers.

The per-value-type projection is the Codec trait, implemented once per value type under crate::tree::value, mirroring the model’s value/; both the structural dispatch and the per-property lenses go through it.

Modules§

decode
Decode (syntax to model)
encode
Encode (model to syntax)
escape
Escape (write codec)
mode
Escaping mode
unescape
Unescape (read codec)

Traits§

Codec
How a decoded value type projects to and from a syntax node: decode reads it from a node (its escaper carries the mode), encode writes it back, escaping every leaf with the given Escaper and stamping it on the node. The escaper is symmetric across the two directions: decode reads it off the incoming node, encode receives the target mode and applies it (the decoded value itself is escaper-agnostic clean text).