Simplify pretty printing separated elements

This commit is contained in:
Joscha 2022-11-21 00:20:33 +01:00
parent 9d6cd580d4
commit 6eee1ba930
5 changed files with 24 additions and 20 deletions

View file

@ -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()),
), ),
} }

View file

@ -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())

View file

@ -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(","),
)), )),
} }
} }

View file

@ -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())

View file

@ -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())