[go: up one dir, main page]

rust-format 0.2.1

A Rust source code formatting crate with a unified interface for string, file, and TokenStream input
Documentation

rust-format

Crate Docs

A Rust source code formatting crate with a unified interface for string, file, and
TokenStream input. It currently supports rustfmt and prettyplease.

Examples

Simple example using default options of RustFmt:

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:

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::with_capacity(2);
  options.insert("reorder_imports", "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);
}

Install

[dependencies]
rust-format = "0.2"

Optional Features

License

This project is licensed optionally under either: