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
//! display_list module stores the output model for the snippet.
//!
//! `DisplayList` is a central structure in the crate, which contains
//! the structured list of lines to be displayed.
//!
//! It is made of two types of lines: `Source` and `Raw`. All `Source` lines
//! are structured using four columns:
//!
//! ```text
//! /------------ (1) Line number column.
//! | /--------- (2) Line number column delimiter.
//! | | /------- (3) Inline marks column.
//! | | | /--- (4) Content column with the source and annotations for slices.
//! | | | |
//! =============================================================================
//! error[E0308]: mismatched types
//! --> src/format.rs:51:5
//! |
//! 151 | / fn test() -> String {
//! 152 | | return "test";
//! 153 | | }
//! | |___^ error: expected `String`, for `&str`.
//! |
//! ```
//!
//! The first two lines of the example above are `Raw` lines, while the rest
//! are `Source` lines.
//!
//! `DisplayList` does not store column alignment information, and those are
//! only calculated by the implementation of `std::fmt::Display` using information such as
//! styling.
//!
//! The above snippet has been built out of the following structure:
mod from_snippet;
mod structs;
pub use self::structs::*;