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
use display_list::{DisplayAnnotationPart, DisplayAnnotationType, DisplayLine, DisplayMark,
                   DisplayTextFragment};
use std::fmt;

pub trait DisplayListFormatting {
    fn format_annotation_type(annotation_type: &DisplayAnnotationType) -> String;

    fn format_inline_marks(inline_marks: &[DisplayMark], inline_marks_width: usize) -> String;

    fn format_source_annotation_lines(
        f: &mut fmt::Formatter,
        lineno_width: usize,
        inline_marks: String,
        range: &(usize, usize),
        label: &[DisplayTextFragment],
        annotation_type: &DisplayAnnotationType,
        annotation_part: &DisplayAnnotationPart,
    ) -> fmt::Result;

    fn format_label(label: &[DisplayTextFragment]) -> String;

    fn format_line(
        f: &mut fmt::Formatter,
        dl: &DisplayLine,
        lineno_width: usize,
        inline_marks_width: usize,
    ) -> fmt::Result;
}