| Crates.io | rustfmt-wrapper |
| lib.rs | rustfmt-wrapper |
| version | 0.2.1 |
| created_at | 2021-10-09 00:45:35.707938+00 |
| updated_at | 2023-10-23 21:52:33.77983+00 |
| description | Library wrapper around rustfmt for use by code generators |
| homepage | |
| repository | https://github.com/oxidecomputer/rustfmt-wrapper |
| max_upload_size | |
| id | 462588 |
| size | 33,892 |
Rust makes it easy to generate more Rust code--for macros, builders, whatever.
It's nice to format that code to be a little easier on the eyes. While
rustfmt does a pretty good job, it does a pretty good job as a command and
isn't usable as a library. This is a probably-too-simple wrapper library.
It's pretty simple to use and mixes well with quote!:
let codegen = quote::quote!{ struct Foo { bar: String } };
let formatted: String = rustfmt_wrapper::rustfmt(codegen).unwrap();
If you need more control over the vast array of rustfmt configuration
options, you can use the second form:
let codegen = quote::quote!{
async fn go() {
let _ = Client::new().operation_id().send().await?;
}
};
let config = Config {
max_width: Some(45),
..Default::default()
};
let narrow_formatted = rustfmt_config(config, codegen).unwrap();
Note that in order to use unstable configuration options, you will need to have
a the nightly version of rustfmt installed.
Thanks to David Tolnay for so many tools including
cargo-expand from which this
borrows.