Sha256: 31e02c3313d12c88b3b26baa49a9cb143440804b557b5255aad9a9b80b8ea1c6
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
use proc_macro2::{Ident, TokenStream}; use quote::format_ident; use syn; use try; pub fn wrap_in_const( serde_path: Option<&syn::Path>, trait_: &str, ty: &Ident, code: TokenStream, ) -> TokenStream { let try_replacement = try::replacement(); let dummy_const = if cfg!(no_underscore_consts) { format_ident!("_IMPL_{}_FOR_{}", trait_, unraw(ty)) } else { format_ident!("_") }; 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)] const #dummy_const: () = { #use_serde #try_replacement #code }; } } fn unraw(ident: &Ident) -> String { ident.to_string().trim_start_matches("r#").to_owned() }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
wasmtime-8.0.0 | ./ext/cargo-vendor/serde_derive-1.0.160/src/dummy.rs |
wasmtime-7.0.0 | ./ext/cargo-vendor/serde_derive-1.0.159/src/dummy.rs |