A Rust source code formatting crate with a unified interface for string, file, and
TokenStream
input. It currently supports rustfmt
and prettyplease.
Simple example using default options of RustFmt
:
```rust use rust_format::{Formatter, RustFmt};
fn main() { let source = r#"fn main() { println!("Hello World!"); }"#;
let actual = RustFmt::default().format_str(source).unwrap(); let expected = r#"fn main() { println!("Hello World!"); } "#;
assert_eq!(expected, actual); } ```
Using a custom configuration:
```rust use std::collections::HashMap; use rust_format::{Config, Edition, Formatter, RustFmt};
fn main() { let source = r#"use std::marker; use std::io; mod test; mod impls;"#;
let mut options = HashMap::withcapacity(2); options.insert("reorderimports", "false"); options.insert("reorder_modules", "false");
let config = Config::new(Edition::Rust2018, options); let rustfmt = RustFmt::from_config(config);
let actual = rustfmt.format_str(source).unwrap(); let expected = r#"use std::marker; use std::io; mod test; mod impls; "#;
assert_eq!(expected, actual); } ```
toml
[dependencies]
rust-format = "0.1"
pretty_please
- enables prettyplease
formatting supporttoken_stream
- enables formatting from
TokenStream
inputThis project is licensed optionally under either: