openapi-client-generator 0.1.9

Generates a client library based on an OpenAPI spec.
use std::fs::File;
use std::io::Write;
use anyhow::Result;
use proc_macro2::TokenStream;


pub fn format_code(code: TokenStream) -> Result<String> {
    let code = code.to_string();
    let syntax_tree = syn::parse_file(&code).unwrap();
    let code = prettyplease::unparse(&syntax_tree);
    Ok(code)
}


#[cfg(test)]
mod tests {
    use proc_macro2::TokenStream;
    use quote::quote;
    use super::*;

    fn codegen_example() -> TokenStream {
        quote! {
            use tokio;

            pub async fn main() {
                println!("Hello, world!");
            }
        }
    }

    #[test]
    fn test_codegen() {
        let code = codegen_example();
        let code = format_code(code).unwrap();
        assert_eq!(code, r#"
use tokio;
pub async fn main() {
    println!("Hello, world!");
}
"#.trim_start());
    }
}