I'm exploring ways that I can nicely format const tables of data to be more compact and easier to read. For example, I have [[u64; 64]; 2]
where rustfmt just spaghettifies into hundreds of lines. It would be nice to format into something more compact, like this:
I have other tables of similar types, like [[u64; 64]; 64]
, ([(u64, u64, u32, usize); 64], [u64; 1024])
.
Does rustfmt have attributes that can help, for example? I know #![rustfmt::skip]
but don't see mention of other ones. And this one doesn't really help since this means I'll be manually formatting lots of tables.
Other than writing custom code for each one to generate in a more compact format, is there a tool that can perhaps help automate this?
There is no way to direct
rustfmt
to format specific code blocks differently. In my project, I use#[rustfmt::skip]
on data arrays like these.However, in this case, you may be able to get what you want using the rustfmt option
short_array_element_width_threshold
. Setting that option to 18, up from the default of 10, in arustfmt.toml
results in
rustfmt
producing the following formatting (with the default 100 character line width):