Allow custom indentation in write_impl_tags

This commit is contained in:
Richard Feldman 2022-05-11 08:56:18 -04:00
parent fe591450df
commit bf59119bf3
No known key found for this signature in database
GPG key ID: 7E4127D1E4241798

View file

@ -248,6 +248,7 @@ fn write_tag_union(
)?; )?;
write_impl_tags( write_impl_tags(
3,
tags.iter(), tags.iter(),
&discriminant_name, &discriminant_name,
buf, buf,
@ -289,6 +290,7 @@ fn write_impl_tags<
I: IntoIterator<Item = &'a (String, Option<TypeId>)>, I: IntoIterator<Item = &'a (String, Option<TypeId>)>,
F: Fn(&str, Option<TypeId>) -> String, F: Fn(&str, Option<TypeId>) -> String,
>( >(
indentations: usize,
tags: I, tags: I,
discriminant_name: &str, discriminant_name: &str,
buf: &mut String, buf: &mut String,
@ -297,11 +299,11 @@ fn write_impl_tags<
for (tag_name, opt_payload_id) in tags { for (tag_name, opt_payload_id) in tags {
let branch_str = to_branch_str(tag_name, *opt_payload_id); let branch_str = to_branch_str(tag_name, *opt_payload_id);
writeln!( for _ in 0..indentations {
buf, buf.write_str(INDENT)?;
"{}{}{}{}::{} => {}", }
INDENT, INDENT, INDENT, discriminant_name, tag_name, branch_str
)?; writeln!(buf, "{}::{} => {}", discriminant_name, tag_name, branch_str)?;
} }
Ok(()) Ok(())