pub struct LayoutResult {
pub vis_slots: Vec<usize>,
pub rows: Vec<RowLayout>,
pub spans: Vec<SpanMark>,
pub concert_key_overrides: Vec<ConcertKeyOverride>,
pub beam_groups: Vec<BeamGroup>,
pub tuplet_groups: Vec<TupletGroup>,
pub courtesy_accidentals: Vec<CourtesyAccidental>,
pub accidentals: Vec<AccidentalMark>,
}Expand description
The result of a layout pass.
Fields§
§vis_slots: Vec<usize>Maps each visual column index to a physical measure index.
Each entry vis_slots[v] is the physical measure index for visual column v.
Non-multi-rest measures each contribute exactly one entry. A measure with
multi_rest_count = N contributes N consecutive entries all equal to that
measure’s physical index.
Therefore vis_slots.len() equals the total number of visual columns —
which is ≥ the number of physical measures (equal when no multi-rests are
present, and greater when multi-rests expand visual space).
Example: 3 physical measures where measure 0 has multi_rest_count = Some(4)
produces vis_slots = [0, 0, 0, 0, 1, 2] — six visual columns.
rows: Vec<RowLayout>Each row in display order; rows cover all parts simultaneously.
spans: Vec<SpanMark>Fully resolved span marks (hairpin / ottava / pedal start+end pairs).
concert_key_overrides: Vec<ConcertKeyOverride>Per-staff concert-pitch key signature overrides.
Non-empty only when LayoutConfig::concert_pitch is true and at least one staff
has a non-zero transpose_semitones.
beam_groups: Vec<BeamGroup>Beam groups across all parts, staves, measures, and voices.
Derived from BeamState flags on individual notes. Each group contains at least
two note indices. Groups are ordered by (part, staff, measure, voice).
tuplet_groups: Vec<TupletGroup>Tuplet groups across all parts, staves, measures, and voices.
Each group represents one tuplet bracket. Notes in a group share the same
TupletInfo. Groups are ordered by (part, staff, measure, voice).
courtesy_accidentals: Vec<CourtesyAccidental>Courtesy (cautionary) accidentals across all parts, staves, measures, and voices.
A courtesy accidental is emitted when the same pitch (step + octave) was chromatically altered in the immediately preceding measure, reminding the performer the alteration no longer applies. Ordered by (part, staff, measure, voice, note_index, pitch_index).
accidentals: Vec<AccidentalMark>Mandatory (non-courtesy) accidentals across all parts, staves, measures, and voices.
Emitted for the first chromatic alteration of a step+octave within a measure.
See AccidentalMark for the precedence rule against courtesy_accidentals.
Trait Implementations§
Source§impl Clone for LayoutResult
impl Clone for LayoutResult
Source§fn clone(&self) -> LayoutResult
fn clone(&self) -> LayoutResult
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more