Simplify pretty printing separated elements
This commit is contained in:
parent
9d6cd580d4
commit
6eee1ba930
5 changed files with 24 additions and 20 deletions
|
|
@ -18,9 +18,9 @@ impl<E, S1, S2> Separated<E, S1, S2> {
|
||||||
) -> DocBuilder<'a, D>
|
) -> DocBuilder<'a, D>
|
||||||
where
|
where
|
||||||
D: DocAllocator<'a>,
|
D: DocAllocator<'a>,
|
||||||
FE: Fn(&'a D, E) -> DocBuilder<'a, D>,
|
FE: Fn(E) -> DocBuilder<'a, D>,
|
||||||
FS1: Fn(&'a D, S1) -> DocBuilder<'a, D>,
|
FS1: Fn(S1) -> DocBuilder<'a, D>,
|
||||||
FS2: Fn(&'a D, S2) -> DocBuilder<'a, D>,
|
FS2: Fn(S2) -> DocBuilder<'a, D>,
|
||||||
{
|
{
|
||||||
match self {
|
match self {
|
||||||
Self::Empty(_) => allocator.nil(),
|
Self::Empty(_) => allocator.nil(),
|
||||||
|
|
@ -29,13 +29,17 @@ impl<E, S1, S2> Separated<E, S1, S2> {
|
||||||
last_elems,
|
last_elems,
|
||||||
trailing,
|
trailing,
|
||||||
span: _span,
|
span: _span,
|
||||||
} => elem_to_doc(allocator, first_elem)
|
} => elem_to_doc(first_elem)
|
||||||
.append(allocator.concat(last_elems.into_iter().map(|(s, e)| {
|
.append(
|
||||||
separator_to_doc(allocator, s).append(elem_to_doc(allocator, e))
|
allocator.concat(
|
||||||
})))
|
last_elems
|
||||||
|
.into_iter()
|
||||||
|
.map(|(s, e)| separator_to_doc(s).append(elem_to_doc(e))),
|
||||||
|
),
|
||||||
|
)
|
||||||
.append(
|
.append(
|
||||||
trailing
|
trailing
|
||||||
.map(|s| trailing_separator_to_doc(allocator, s))
|
.map(trailing_separator_to_doc)
|
||||||
.unwrap_or_else(|| allocator.nil()),
|
.unwrap_or_else(|| allocator.nil()),
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,9 +55,9 @@ impl<'a, D: DocAllocator<'a>> Pretty<'a, D> for TableLit {
|
||||||
self.elems
|
self.elems
|
||||||
.pretty(
|
.pretty(
|
||||||
allocator,
|
allocator,
|
||||||
|a, e| a.line().append(e.pretty(a)),
|
|e| allocator.line().append(e.pretty(allocator)),
|
||||||
|a, (s0, s1)| a.text(","),
|
|(s0, s1)| allocator.text(","),
|
||||||
|a, s| a.text(","),
|
|s| allocator.text(","),
|
||||||
)
|
)
|
||||||
.nest(NEST_DEPTH)
|
.nest(NEST_DEPTH)
|
||||||
.append(allocator.line())
|
.append(allocator.line())
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,9 @@ impl<'a, D: DocAllocator<'a>> Pretty<'a, D> for Program {
|
||||||
.append(allocator.line())
|
.append(allocator.line())
|
||||||
.append(elems.pretty(
|
.append(elems.pretty(
|
||||||
allocator,
|
allocator,
|
||||||
|a, e| e.pretty(a),
|
|e| e.pretty(allocator),
|
||||||
|a, (s0, s1)| a.text(",").append(a.line()),
|
|(s0, s1)| allocator.text(",").append(allocator.line()),
|
||||||
|a, s| a.text(","),
|
|s| allocator.text(","),
|
||||||
)),
|
)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,9 @@ impl<'a, D: DocAllocator<'a>> Pretty<'a, D> for TableConstr {
|
||||||
self.elems
|
self.elems
|
||||||
.pretty(
|
.pretty(
|
||||||
allocator,
|
allocator,
|
||||||
|a, e| a.line().append(e.pretty(a)),
|
|e| allocator.line().append(e.pretty(allocator)),
|
||||||
|a, (s0, s1)| a.text(","),
|
|(s0, s1)| allocator.text(","),
|
||||||
|a, s| a.text(","),
|
|s| allocator.text(","),
|
||||||
)
|
)
|
||||||
.nest(NEST_DEPTH)
|
.nest(NEST_DEPTH)
|
||||||
.append(allocator.line())
|
.append(allocator.line())
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,9 @@ impl<'a, D: DocAllocator<'a>> Pretty<'a, D> for TablePattern {
|
||||||
self.elems
|
self.elems
|
||||||
.pretty(
|
.pretty(
|
||||||
allocator,
|
allocator,
|
||||||
|a, e| a.line().append(e.pretty(a)),
|
|e| allocator.line().append(e.pretty(allocator)),
|
||||||
|a, (s0, s1)| a.text(","),
|
|(s0, s1)| allocator.text(","),
|
||||||
|a, s| a.text(","),
|
|s| allocator.text(","),
|
||||||
)
|
)
|
||||||
.nest(NEST_DEPTH)
|
.nest(NEST_DEPTH)
|
||||||
.append(allocator.line())
|
.append(allocator.line())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue