blob: 5e461cc65db027658264dfa43f44fb3de8c37621 [file] [log] [blame]
David Tolnaycec98a72019-05-08 15:23:19 -07001use proc_macro2::TokenStream;
David Tolnaycec98a72019-05-08 15:23:19 -07002use std::fs::File;
3use std::io::Write;
4
5pub fn write(path: &str, content: TokenStream) {
6 let mut file = File::create(path).unwrap();
7 write!(
8 file,
9 "// THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT\n\n"
10 )
11 .unwrap();
12 let mut config = rustfmt::Config::default();
13 config.set().emit_mode(rustfmt::EmitMode::Stdout);
14 config.set().verbose(rustfmt::Verbosity::Quiet);
15 config.set().format_macro_matchers(true);
16 config.set().normalize_doc_attributes(true);
17 let mut session = rustfmt::Session::new(config, Some(&mut file));
18 session
19 .format(rustfmt::Input::Text(content.to_string()))
20 .unwrap();
21}