Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use "yaserde_derive" as the log target for generated logging calls #120

Merged
merged 2 commits into from Dec 1, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion yaserde/Cargo.toml
Expand Up @@ -17,7 +17,7 @@ xml-rs = "0.8.3"
log = "0.4"

[dev-dependencies]
env_logger = "0.8.2"
env_logger = "0.9.0"
yaserde_derive = { version = "0.7.1", path = "../yaserde_derive" }

[badges]
Expand Down
2 changes: 1 addition & 1 deletion yaserde/src/de/mod.rs
Expand Up @@ -85,7 +85,7 @@ impl<'de, R: Read> Deserializer<R> {
}
_ => {}
}
debug!("Fetched {:?}, new depth {}", next_event, self.depth);
log::debug!("Fetched {:?}, new depth {}", next_event, self.depth);
Ok(next_event)
}

Expand Down
26 changes: 22 additions & 4 deletions yaserde/src/lib.rs
Expand Up @@ -81,10 +81,6 @@
//! Avoid using either `{:?}` or `{:#?}` println! formatters since it'll garble the output of your
//! XML.

#[macro_use]
pub extern crate log;
pub extern crate xml;

#[cfg(feature = "yaserde_derive")]
#[allow(unused_imports)]
#[macro_use]
Expand Down Expand Up @@ -217,6 +213,28 @@ serialize_type!(i64);
serialize_type!(f32);
serialize_type!(f64);

/// Re-export for use in yaserde_derive
#[doc(hidden)]
pub use xml as __xml;

/// Re-export for use in yaserde_derive
#[doc(hidden)]
pub use log as __log;

/// Used in code generated by yaserde_derive for logging
#[macro_export]
#[doc(hidden)]
macro_rules! __derive_debug {
($($arg:tt)+) => { ::yaserde::__log::debug!(target: "yaserde_derive", $($arg)+) };
}

/// Used in code generated by yaserde_derive for logging
#[macro_export]
#[doc(hidden)]
macro_rules! __derive_trace {
($($arg:tt)+) => { ::yaserde::__log::trace!(target: "yaserde_derive", $($arg)+) };
}

#[test]
fn default_visitor() {
struct Test;
Expand Down
22 changes: 11 additions & 11 deletions yaserde_derive/src/de/expand_enum.rs
Expand Up @@ -32,14 +32,14 @@ pub fn parse(
reader: &mut ::yaserde::de::Deserializer<R>,
) -> ::std::result::Result<Self, ::std::string::String> {
let (named_element, enum_namespace) =
if let ::yaserde::xml::reader::XmlEvent::StartElement{ name, .. } = reader.peek()?.to_owned() {
if let ::yaserde::__xml::reader::XmlEvent::StartElement{ name, .. } = reader.peek()?.to_owned() {
(name.local_name.to_owned(), name.namespace.clone())
} else {
(::std::string::String::from(#root), ::std::option::Option::None)
};

let start_depth = reader.depth();
::yaserde::log::debug!("Enum {} @ {}: start to parse {:?}", stringify!(#name), start_depth, named_element);
::yaserde::__derive_debug!("Enum {} @ {}: start to parse {:?}", stringify!(#name), start_depth, named_element);

#namespaces_matching

Expand All @@ -48,33 +48,33 @@ pub fn parse(

loop {
let event = reader.peek()?.to_owned();
::yaserde::log::trace!("Enum {} @ {}: matching {:?}", stringify!(#name), start_depth, event);
::yaserde::__derive_trace!("Enum {} @ {}: matching {:?}", stringify!(#name), start_depth, event);
match event {
::yaserde::xml::reader::XmlEvent::StartElement { ref name, ref attributes, .. } => {
::yaserde::__xml::reader::XmlEvent::StartElement { ref name, ref attributes, .. } => {
match name.local_name.as_str() {
#match_to_enum
_named_element => {
let _root = reader.next_event();
}
}

if let ::yaserde::xml::reader::XmlEvent::Characters(content) = reader.peek()?.to_owned() {
if let ::yaserde::__xml::reader::XmlEvent::Characters(content) = reader.peek()?.to_owned() {
match content.as_str() {
#match_to_enum
_ => {}
}
}
}
::yaserde::xml::reader::XmlEvent::EndElement { ref name } => {
::yaserde::__xml::reader::XmlEvent::EndElement { ref name } => {
if name.local_name == named_element {
break;
}
let _root = reader.next_event();
}
::yaserde::xml::reader::XmlEvent::Characters(ref text_content) => {
::yaserde::__xml::reader::XmlEvent::Characters(ref text_content) => {
let _root = reader.next_event();
}
::yaserde::xml::reader::XmlEvent::EndDocument => {
::yaserde::__xml::reader::XmlEvent::EndDocument => {
if #flatten {
break;
}
Expand All @@ -89,7 +89,7 @@ pub fn parse(
}
}

::yaserde::log::debug!("Enum {} @ {}: success", stringify!(#name), start_depth);
::yaserde::__derive_debug!("Enum {} @ {}: success", stringify!(#name), start_depth);
match enum_value {
::std::option::Option::Some(value) => ::std::result::Result::Ok(value),
::std::option::Option::None => {
Expand Down Expand Up @@ -231,11 +231,11 @@ fn build_unnamed_visitor_calls(
let visitor = #visitor_label{};

let result = reader.read_inner_value::<#field_type, _>(|reader| {
if let ::yaserde::xml::reader::XmlEvent::EndElement { .. } = *reader.peek()? {
if let ::yaserde::__xml::reader::XmlEvent::EndElement { .. } = *reader.peek()? {
return visitor.#visitor("");
}

if let ::std::result::Result::Ok(::yaserde::xml::reader::XmlEvent::Characters(s))
if let ::std::result::Result::Ok(::yaserde::__xml::reader::XmlEvent::Characters(s))
= reader.next_event()
{
visitor.#visitor(&s)
Expand Down
22 changes: 11 additions & 11 deletions yaserde_derive/src/de/expand_struct.rs
Expand Up @@ -156,7 +156,7 @@ pub fn parse(
// Don't count current struct's StartElement as substruct's StartElement
let _root = reader.next_event();
}
if let Ok(::yaserde::xml::reader::XmlEvent::StartElement { .. }) = reader.peek() {
if let Ok(::yaserde::__xml::reader::XmlEvent::StartElement { .. }) = reader.peek() {
// If substruct's start element found then deserialize substruct
let value = <#struct_name as ::yaserde::YaDeserialize>::deserialize(reader)?;
#value_label #action;
Expand Down Expand Up @@ -346,13 +346,13 @@ pub fn parse(
reader: &mut ::yaserde::de::Deserializer<R>,
) -> ::std::result::Result<Self, ::std::string::String> {
let (named_element, struct_namespace) =
if let ::yaserde::xml::reader::XmlEvent::StartElement { name, .. } = reader.peek()?.to_owned() {
if let ::yaserde::__xml::reader::XmlEvent::StartElement { name, .. } = reader.peek()?.to_owned() {
(name.local_name.to_owned(), name.namespace.clone())
} else {
(::std::string::String::from(#root), ::std::option::Option::None)
};
let start_depth = reader.depth();
::yaserde::log::debug!("Struct {} @ {}: start to parse {:?}", stringify!(#name), start_depth,
::yaserde::__derive_debug!("Struct {} @ {}: start to parse {:?}", stringify!(#name), start_depth,
named_element);

if reader.depth() == 0 {
Expand All @@ -367,12 +367,12 @@ pub fn parse(

loop {
let event = reader.peek()?.to_owned();
::yaserde::log::trace!(
::yaserde::__derive_trace!(
"Struct {} @ {}: matching {:?}",
stringify!(#name), start_depth, event,
);
match event {
::yaserde::xml::reader::XmlEvent::StartElement{ref name, ref attributes, ..} => {
::yaserde::__xml::reader::XmlEvent::StartElement{ref name, ref attributes, ..} => {
if depth == 0 && name.local_name == #root {
// Consume root element. We must do this first. In the case it shares a name with a child element, we don't
// want to prematurely match the child element below.
Expand All @@ -398,7 +398,7 @@ pub fn parse(
}
depth += 1;
}
::yaserde::xml::reader::XmlEvent::EndElement { ref name } => {
::yaserde::__xml::reader::XmlEvent::EndElement { ref name } => {
if name.local_name == named_element {
#write_unused
break;
Expand All @@ -407,12 +407,12 @@ pub fn parse(
#write_unused
depth -= 1;
}
::yaserde::xml::reader::XmlEvent::EndDocument => {
::yaserde::__xml::reader::XmlEvent::EndDocument => {
if #flatten {
break;
}
}
::yaserde::xml::reader::XmlEvent::Characters(ref text_content) => {
::yaserde::__xml::reader::XmlEvent::Characters(ref text_content) => {
#set_text
let event = reader.next_event()?;
#write_unused
Expand All @@ -425,7 +425,7 @@ pub fn parse(

#visit_unused

::yaserde::log::debug!("Struct {} @ {}: success", stringify!(#name), start_depth);
::yaserde::__derive_debug!("Struct {} @ {}: success", stringify!(#name), start_depth);
::std::result::Result::Ok(#name{#struct_builder})
}
}
Expand Down Expand Up @@ -456,7 +456,7 @@ fn build_call_visitor(
#namespaces_matching

let result = reader.read_inner_value::<#field_type, _>(|reader| {
if let ::std::result::Result::Ok(::yaserde::xml::reader::XmlEvent::Characters(s)) = reader.peek() {
if let ::std::result::Result::Ok(::yaserde::__xml::reader::XmlEvent::Characters(s)) = reader.peek() {
let val = visitor.#visitor(&s);
let _event = reader.next_event()?;
val
Expand Down Expand Up @@ -504,7 +504,7 @@ fn build_code_for_unused_xml_events(
(
Some(quote! {
let mut buf = ::std::vec![];
let mut writer = ::std::option::Option::Some(::yaserde::xml::writer::EventWriter::new(&mut buf));
let mut writer = ::std::option::Option::Some(::yaserde::__xml::writer::EventWriter::new(&mut buf));
}),
Some(quote! {
if let ::std::option::Option::Some(ref mut w) = writer {
Expand Down
6 changes: 3 additions & 3 deletions yaserde_derive/src/ser/element.rs
Expand Up @@ -16,14 +16,14 @@ pub fn enclose_characters(label: &Option<Ident>, label_name: String) -> TokenStr

fn enclose_xml_event(label_name: String, yaserde_format: TokenStream) -> TokenStream {
quote! {
let start_event = ::yaserde::xml::writer::XmlEvent::start_element(#label_name);
let start_event = ::yaserde::__xml::writer::XmlEvent::start_element(#label_name);
writer.write(start_event).map_err(|e| e.to_string())?;

let yaserde_value = #yaserde_format;
let data_event = ::yaserde::xml::writer::XmlEvent::characters(&yaserde_value);
let data_event = ::yaserde::__xml::writer::XmlEvent::characters(&yaserde_value);
writer.write(data_event).map_err(|e| e.to_string())?;

let end_event = ::yaserde::xml::writer::XmlEvent::end_element();
let end_event = ::yaserde::__xml::writer::XmlEvent::end_element();
writer.write(end_event).map_err(|e| e.to_string())?;
}
}
Expand Down
18 changes: 9 additions & 9 deletions yaserde_derive/src/ser/expand_enum.rs
Expand Up @@ -42,7 +42,7 @@ fn inner_enum_inspector(
match variant.fields {
Fields::Unit => Some(quote! {
&#name::#label => {
let data_event = ::yaserde::xml::writer::XmlEvent::characters(#label_name);
let data_event = ::yaserde::__xml::writer::XmlEvent::characters(#label_name);
writer.write(data_event).map_err(|e| e.to_string())?;
}
}),
Expand All @@ -57,7 +57,7 @@ fn inner_enum_inspector(

if field.is_text_content() {
return Some(quote!(
let data_event = ::yaserde::xml::writer::XmlEvent::characters(&self.#field_label);
let data_event = ::yaserde::__xml::writer::XmlEvent::characters(&self.#field_label);
writer.write(data_event).map_err(|e| e.to_string())?;
));
}
Expand All @@ -81,14 +81,14 @@ fn inner_enum_inspector(
match self {
&#name::#label { ref #field_label, .. } => {
let struct_start_event =
::yaserde::xml::writer::XmlEvent::start_element(#field_label_name);
::yaserde::__xml::writer::XmlEvent::start_element(#field_label_name);
writer.write(struct_start_event).map_err(|e| e.to_string())?;

let string_value = #field_label.to_string();
let data_event = ::yaserde::xml::writer::XmlEvent::characters(&string_value);
let data_event = ::yaserde::__xml::writer::XmlEvent::characters(&string_value);
writer.write(data_event).map_err(|e| e.to_string())?;

let struct_end_event = ::yaserde::xml::writer::XmlEvent::end_element();
let struct_end_event = ::yaserde::__xml::writer::XmlEvent::end_element();
writer.write(struct_end_event).map_err(|e| e.to_string())?;
},
_ => {},
Expand Down Expand Up @@ -142,24 +142,24 @@ fn inner_enum_inspector(
.map(|field| {
let write_element = |action: &TokenStream| {
quote! {
let struct_start_event = ::yaserde::xml::writer::XmlEvent::start_element(#label_name);
let struct_start_event = ::yaserde::__xml::writer::XmlEvent::start_element(#label_name);
writer.write(struct_start_event).map_err(|e| e.to_string())?;

#action

let struct_end_event = ::yaserde::xml::writer::XmlEvent::end_element();
let struct_end_event = ::yaserde::__xml::writer::XmlEvent::end_element();
writer.write(struct_end_event).map_err(|e| e.to_string())?;
}
};

let write_string_chars = quote! {
let data_event = ::yaserde::xml::writer::XmlEvent::characters(item);
let data_event = ::yaserde::__xml::writer::XmlEvent::characters(item);
writer.write(data_event).map_err(|e| e.to_string())?;
};

let write_simple_type = write_element(&quote! {
let s = item.to_string();
let data_event = ::yaserde::xml::writer::XmlEvent::characters(&s);
let data_event = ::yaserde::__xml::writer::XmlEvent::characters(&s);
writer.write(data_event).map_err(|e| e.to_string())?;
});

Expand Down
6 changes: 3 additions & 3 deletions yaserde_derive/src/ser/expand_struct.rs
Expand Up @@ -125,7 +125,7 @@ pub fn serialize(
quote!(
let (attributes, namespace) = self.#label.serialize_attributes(
::std::vec![],
::yaserde::xml::namespace::Namespace::empty(),
::yaserde::__xml::namespace::Namespace::empty(),
)?;
child_attributes_namespace.extend(&namespace);
child_attributes.extend(attributes);
Expand All @@ -148,11 +148,11 @@ pub fn serialize(
return match field.get_type() {
Field::FieldOption { .. } => Some(quote!(
let s = self.#label.as_deref().unwrap_or_default();
let data_event = ::yaserde::xml::writer::XmlEvent::characters(s);
let data_event = ::yaserde::__xml::writer::XmlEvent::characters(s);
writer.write(data_event).map_err(|e| e.to_string())?;
)),
_ => Some(quote!(
let data_event = ::yaserde::xml::writer::XmlEvent::characters(&self.#label);
let data_event = ::yaserde::__xml::writer::XmlEvent::characters(&self.#label);
writer.write(data_event).map_err(|e| e.to_string())?;
)),
};
Expand Down