use std::{ io::{self, Write}, process::{Command, Stdio}, }; pub fn format(code: &str) -> Result { let mut child = Command::new("rustfmt") .stdin(Stdio::piped()) .stdout(Stdio::piped()) .spawn()?; let stdin = child.stdin.as_mut().unwrap(); stdin.write_all(code.as_bytes())?; let output = child.wait_with_output()?; if !output.status.success() { return Err(io::Error::new( io::ErrorKind::Other, format!( "rustfmt failed with exit code: {}", output.status.code().unwrap() ), )); } Ok(String::from_utf8(output.stdout).unwrap()) }