28 lines
694 B
Rust
28 lines
694 B
Rust
use proc_macro2::TokenStream;
|
|
use quote::quote;
|
|
|
|
pub fn wrap_in_const(serde_path: Option<&syn::Path>, code: TokenStream) -> TokenStream {
|
|
let use_serde = match serde_path {
|
|
Some(path) => quote! {
|
|
use #path as _serde;
|
|
},
|
|
None => quote! {
|
|
#[allow(unused_extern_crates, clippy::useless_attribute)]
|
|
extern crate serde as _serde;
|
|
},
|
|
};
|
|
|
|
quote! {
|
|
#[doc(hidden)]
|
|
#[allow(
|
|
non_upper_case_globals,
|
|
unused_attributes,
|
|
unused_qualifications,
|
|
clippy::absolute_paths,
|
|
)]
|
|
const _: () = {
|
|
#use_serde
|
|
#code
|
|
};
|
|
}
|
|
}
|