opg_derive 0.0.5

Rust OpenAPI 3.0 docs generator
Documentation
pub fn wrap_in_const(
    trait_: &str,
    ty: &syn::Ident,
    code: proc_macro2::TokenStream,
) -> proc_macro2::TokenStream {
    let dummy_const = if cfg!(underscore_consts) {
        quote::format_ident!("_")
    } else {
        quote::format_ident!("_IMPL_{}_FOR_{}", trait_, unraw(ty))
    };

    let use_opg = quote::quote! {
        #[allow(rust_2018_idioms, clippy::useless_attribute)]
        extern crate opg as _opg;
    };

    quote::quote! {
        #[doc(hidden)]
        #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
        const #dummy_const: () = {
            #use_opg
            #code
        };
    }
}

pub fn unraw(ident: &syn::Ident) -> String {
    ident.to_string().trim_start_matches("r#").to_owned()
}