zvariant_derive/
utils.rs
1use proc_macro2::TokenStream;
2use proc_macro_crate::{crate_name, FoundCrate};
3use quote::{format_ident, quote};
4use zvariant_utils::def_attrs;
5
6pub fn zvariant_path() -> TokenStream {
7 if let Ok(FoundCrate::Name(name)) = crate_name("zvariant") {
8 let ident = format_ident!("{}", name);
9 quote! { ::#ident }
10 } else if let Ok(FoundCrate::Name(name)) = crate_name("zbus") {
11 let ident = format_ident!("{}", name);
12 quote! { ::#ident::zvariant }
13 } else {
14 quote! { ::zvariant }
15 }
16}
17
18def_attrs! {
19 crate zvariant;
20
21 pub StructAttributes("struct") { signature str, rename_all str, deny_unknown_fields none };
23 pub FieldAttributes("field") { rename str };
25}