teo_parser/traits/
write.rs

1use std::fmt::Debug;
2use crate::format::Writer;
3
4pub trait Write: Debug {
5
6    fn write<'a>(&'a self, writer: &mut Writer<'a>);
7
8    fn write_output_with_default_writer(&self) -> String {
9        let mut writer = Writer::default();
10        self.write(&mut writer);
11        writer.flush()
12    }
13
14    fn prefer_whitespace_before(&self) -> bool {
15        false
16    }
17
18    fn prefer_whitespace_after(&self) -> bool {
19        false
20    }
21
22    fn prefer_always_no_whitespace_before(&self) -> bool {
23        false
24    }
25
26    fn always_start_on_new_line(&self) -> bool {
27        false
28    }
29
30    fn always_end_on_new_line(&self) -> bool {
31        false
32    }
33
34    fn is_block_start(&self) -> bool {
35        false
36    }
37
38    fn is_block_end(&self) -> bool {
39        false
40    }
41
42    fn is_block_element_delimiter(&self) -> bool {
43        false
44    }
45
46    fn is_block_level_element(&self) -> bool {
47        false
48    }
49
50    fn wrap(&self, content: &str, _available_length: usize) -> String {
51        content.to_owned()
52    }
53}