use proc_macro2::TokenStream;
use quote::quote;
pub mod attrs;
pub use attrs::*;
mod dict;
pub use dict::{expand_deserialize_dict_derive, expand_serialize_dict_derive};
mod signature;
pub use signature::*;
mod r#type;
pub use r#type::expand_type_derive;
mod value;
pub use value::{ValueType, expand_value_derive};
pub struct Config {
pub attr_lists: &'static [&'static str],
pub default_path: TokenStream,
}
impl Config {
pub fn resolve_path(&self, crate_attr: Option<&str>) -> syn::Result<TokenStream> {
Ok(match attrs::parse_crate_path(crate_attr)? {
Some(path) => quote! { ::#path },
None => self.default_path.clone(),
})
}
}