pub struct Span {
pub line: u16,
pub left: u16,
pub right: u16,
pub cells: Vec<Cell>,
pub combining: BTreeMap<usize, NonZeroU32>,
pub links: BTreeMap<usize, NonZeroU32>,
pub ucolors: BTreeMap<usize, Color>,
}Expand description
A damaged column run on one line, with its cells.
combining and links map a span-relative column to its frame-local index
(1-based) — combining into Frame::side_table, links into
Frame::link_table. These are the per-cell extra/link references lifted
out of the cell now that combining clusters (#45) and hyperlinks (#46) live in
per-row maps. A column is present iff its cell carries the matching bit; on the
wire they are the cell record’s extra/link fields, so the bytes are
unchanged.
Fields§
§line: u16§left: u16§right: u16§cells: Vec<Cell>§combining: BTreeMap<usize, NonZeroU32>§links: BTreeMap<usize, NonZeroU32>§ucolors: BTreeMap<usize, Color>Underline colours (SGR 58, #520): span-relative column → the Color
reference the cell’s coloured underline draws in. Sparse — only cells that
carry a non-default underline colour appear (gated on the UNDERLINE
attribute at parse time). Unlike combining/links this is a colour
reference, not a side-table index, so it ships inline (no _table on the
Frame). Kept off the per-cell record so a plain-text frame pays nothing
(ADR-0020: no inert per-cell payload).