1mod builder;
4
5use super::{utility::is_broken, Document};
6pub use builder::Builder;
7
8pub const fn sequence<'a>(documents: &'a [Document<'a>]) -> Document<'a> {
10 Document::Sequence(documents)
11}
12
13pub const fn line_suffix(string: &str) -> Document {
15 Document::LineSuffix(string)
16}
17
18pub const fn flatten<'a>(document: &'a Document<'a>) -> Document<'a> {
20 Document::Break {
21 broken: false,
22 document,
23 }
24}
25
26pub const fn r#break<'a>(document: &'a Document<'a>) -> Document<'a> {
28 Document::Break {
29 broken: true,
30 document,
31 }
32}
33
34pub fn flatten_if<'a>(condition: bool, document: &'a Document<'a>) -> Document<'a> {
36 Document::Break {
37 broken: !condition || is_broken(document),
38 document,
39 }
40}
41
42pub const fn indent<'a>(document: &'a Document<'a>) -> Document<'a> {
44 Document::Indent(document)
45}
46
47pub const fn line() -> Document<'static> {
49 Document::Line
50}
51
52pub const fn empty() -> Document<'static> {
54 Document::String("")
55}
56
57pub const fn offside<'a>(document: &'a Document<'a>, soft: bool) -> Document<'a> {
59 Document::Offside { document, soft }
60}