zvariant_utils/derive/
mod.rs1use proc_macro2::TokenStream;
4use quote::quote;
5
6pub mod attrs;
7pub use attrs::*;
8
9mod dict;
10pub use dict::{expand_deserialize_dict_derive, expand_serialize_dict_derive};
11
12mod signature;
13pub use signature::*;
14
15mod r#type;
16pub use r#type::expand_type_derive;
17
18mod value;
19pub use value::{ValueType, expand_value_derive};
20
21pub struct Config {
23 pub attr_lists: &'static [&'static str],
25 pub default_path: TokenStream,
27}
28
29impl Config {
30 pub fn resolve_path(&self, crate_attr: Option<&str>) -> syn::Result<TokenStream> {
32 Ok(match attrs::parse_crate_path(crate_attr)? {
33 Some(path) => quote! { ::#path },
34 None => self.default_path.clone(),
35 })
36 }
37}