format code
This commit is contained in:
parent
975baabd76
commit
e2a2779f71
@ -113,28 +113,26 @@ impl YaSerdeAttribute {
|
||||
prefix: &Option<String>,
|
||||
element_namespace: TokenStream,
|
||||
element_name: TokenStream,
|
||||
take_root_prefix: bool
|
||||
) -> TokenStream {
|
||||
let configured_prefix =
|
||||
if take_root_prefix {
|
||||
self.prefix.clone()
|
||||
} else {
|
||||
prefix.clone()
|
||||
};
|
||||
take_root_prefix: bool,
|
||||
) -> TokenStream {
|
||||
let configured_prefix = if take_root_prefix {
|
||||
self.prefix.clone()
|
||||
} else {
|
||||
prefix.clone()
|
||||
};
|
||||
|
||||
let namespaces_matches : TokenStream =
|
||||
self
|
||||
.namespaces
|
||||
.iter()
|
||||
.map(|(prefix, namespace)| {
|
||||
if configured_prefix == Some(prefix.to_string()) {
|
||||
Some(quote!(#namespace => {}))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.filter_map(|x| x)
|
||||
.collect();
|
||||
let namespaces_matches: TokenStream = self
|
||||
.namespaces
|
||||
.iter()
|
||||
.map(|(prefix, namespace)| {
|
||||
if configured_prefix == Some(prefix.to_string()) {
|
||||
Some(quote!(#namespace => {}))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.filter_map(|x| x)
|
||||
.collect();
|
||||
|
||||
quote!(
|
||||
if let Some(namespace) = #element_namespace {
|
||||
|
||||
@ -123,8 +123,13 @@ impl YaSerdeField {
|
||||
root_attributes: &YaSerdeAttribute,
|
||||
element_namespace: TokenStream,
|
||||
element_name: TokenStream,
|
||||
) -> TokenStream {
|
||||
root_attributes.get_namespace_matching(&self.attributes.prefix, element_namespace, element_name, false)
|
||||
) -> TokenStream {
|
||||
root_attributes.get_namespace_matching(
|
||||
&self.attributes.prefix,
|
||||
element_namespace,
|
||||
element_name,
|
||||
false,
|
||||
)
|
||||
}
|
||||
|
||||
pub fn ser_wrap_default_attribute(
|
||||
|
||||
@ -9,7 +9,12 @@ pub fn parse(
|
||||
root: &str,
|
||||
root_attributes: &YaSerdeAttribute,
|
||||
) -> TokenStream {
|
||||
let namespaces_matching = root_attributes.get_namespace_matching(&None, quote!(struct_namespace), quote!(named_element), true);
|
||||
let namespaces_matching = root_attributes.get_namespace_matching(
|
||||
&None,
|
||||
quote!(struct_namespace),
|
||||
quote!(named_element),
|
||||
true,
|
||||
);
|
||||
|
||||
let variables: TokenStream = data_struct
|
||||
.fields
|
||||
@ -400,7 +405,11 @@ fn build_call_visitor(
|
||||
let label_name = field.renamed_label_without_namespace();
|
||||
let visitor_label = build_visitor_ident(&label_name, field.get_span(), None);
|
||||
|
||||
let namespaces_matching = field.get_namespace_matching(root_attributes, quote!(name.namespace.as_ref()), quote!(name.local_name.as_str()));
|
||||
let namespaces_matching = field.get_namespace_matching(
|
||||
root_attributes,
|
||||
quote!(name.namespace.as_ref()),
|
||||
quote!(name.local_name.as_str()),
|
||||
);
|
||||
|
||||
Some(quote! {
|
||||
#label_name => {
|
||||
|
||||
@ -13,13 +13,18 @@ pub fn expand_derive_deserialize(ast: &syn::DeriveInput) -> Result<TokenStream,
|
||||
let data = &ast.data;
|
||||
|
||||
let root_attributes = YaSerdeAttribute::parse(attrs);
|
||||
let root_name = root_attributes.clone().rename.unwrap_or_else(|| name.to_string());
|
||||
let root_name = root_attributes
|
||||
.clone()
|
||||
.rename
|
||||
.unwrap_or_else(|| name.to_string());
|
||||
|
||||
let impl_block = match *data {
|
||||
syn::Data::Struct(ref data_struct) => {
|
||||
expand_struct::parse(data_struct, name, &root_name, &root_attributes)
|
||||
}
|
||||
syn::Data::Enum(ref data_enum) => expand_enum::parse(data_enum, name, &root_name, &root_attributes),
|
||||
syn::Data::Enum(ref data_enum) => {
|
||||
expand_enum::parse(data_enum, name, &root_name, &root_attributes)
|
||||
}
|
||||
syn::Data::Union(ref _data_union) => unimplemented!(),
|
||||
};
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user