diff options
Diffstat (limited to 'syn/codegen/src/file.rs')
-rw-r--r-- | syn/codegen/src/file.rs | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/syn/codegen/src/file.rs b/syn/codegen/src/file.rs deleted file mode 100644 index 5521d75..0000000 --- a/syn/codegen/src/file.rs +++ /dev/null @@ -1,32 +0,0 @@ -use anyhow::Result; -use proc_macro2::TokenStream; -use std::fs; -use std::io::Write; -use std::path::Path; - -pub fn write<P: AsRef<Path>>(path: P, content: TokenStream) -> Result<()> { - let mut formatted = Vec::new(); - writeln!( - formatted, - "// This file is @generated by syn-internal-codegen." - )?; - writeln!(formatted, "// It is not intended for manual editing.")?; - writeln!(formatted)?; - - let mut config = rustfmt::Config::default(); - config.set().emit_mode(rustfmt::EmitMode::Stdout); - config.set().verbose(rustfmt::Verbosity::Quiet); - config.set().format_macro_matchers(true); - config.set().normalize_doc_attributes(true); - - let mut session = rustfmt::Session::new(config, Some(&mut formatted)); - session.format(rustfmt::Input::Text(content.to_string()))?; - drop(session); - - if path.as_ref().is_file() && fs::read(&path)? == formatted { - return Ok(()); - } - - fs::write(path, formatted)?; - Ok(()) -} |