1 //! display_list module stores the output model for the snippet.
2 //!
3 //! `DisplayList` is a central structure in the crate, which contains
4 //! the structured list of lines to be displayed.
5 //!
6 //! It is made of two types of lines: `Source` and `Raw`. All `Source` lines
7 //! are structured using four columns:
8 //!
9 //! ```text
10 //!  /------------ (1) Line number column.
11 //!  |  /--------- (2) Line number column delimiter.
12 //!  |  | /------- (3) Inline marks column.
13 //!  |  | |   /--- (4) Content column with the source and annotations for slices.
14 //!  |  | |   |
15 //! =============================================================================
16 //! error[E0308]: mismatched types
17 //!    --> src/format.rs:51:5
18 //!     |
19 //! 151 | /   fn test() -> String {
20 //! 152 | |       return "test";
21 //! 153 | |   }
22 //!     | |___^ error: expected `String`, for `&str`.
23 //!     |
24 //! ```
25 //!
26 //! The first two lines of the example above are `Raw` lines, while the rest
27 //! are `Source` lines.
28 //!
29 //! `DisplayList` does not store column alignment information, and those are
30 //! only calculated by the implementation of `std::fmt::Display` using information such as
31 //! styling.
32 //!
33 //! The above snippet has been built out of the following structure:
34 mod from_snippet;
35 mod structs;
36 
37 pub use self::structs::*;
38