refactor: improve code based on clippy

This commit is contained in:
Marc-Antoine Arnaud 2023-12-19 22:15:43 +01:00
parent 568de4e1f0
commit a9b7aa2546
12 changed files with 39 additions and 125 deletions

View File

@ -20,7 +20,7 @@ pub struct Deserializer<R: Read> {
peeked: Option<XmlEvent>, peeked: Option<XmlEvent>,
} }
impl<'de, R: Read> Deserializer<R> { impl<R: Read> Deserializer<R> {
pub fn new(reader: EventReader<R>) -> Self { pub fn new(reader: EventReader<R>) -> Self {
Deserializer { Deserializer {
depth: 0, depth: 0,

View File

@ -60,7 +60,7 @@ pub struct Serializer<W: Write> {
start_event_name: Option<String>, start_event_name: Option<String>,
} }
impl<'de, W: Write> Serializer<W> { impl<W: Write> Serializer<W> {
pub fn new(writer: EventWriter<W>) -> Self { pub fn new(writer: EventWriter<W>) -> Self {
Serializer { Serializer {
writer, writer,

View File

@ -308,19 +308,14 @@ fn de_attributes_complex() {
init(); init();
mod other_mod { mod other_mod {
#[derive(YaDeserialize, PartialEq, Debug)] #[derive(Default, YaDeserialize, PartialEq, Debug)]
pub enum AttrEnum { pub enum AttrEnum {
#[default]
#[yaserde(rename = "variant 1")] #[yaserde(rename = "variant 1")]
Variant1, Variant1,
#[yaserde(rename = "variant 2")] #[yaserde(rename = "variant 2")]
Variant2, Variant2,
} }
impl Default for AttrEnum {
fn default() -> AttrEnum {
AttrEnum::Variant1
}
}
} }
#[derive(Default, YaDeserialize, PartialEq, Debug)] #[derive(Default, YaDeserialize, PartialEq, Debug)]
@ -476,19 +471,14 @@ fn de_enum() {
items: Vec<Color>, items: Vec<Color>,
} }
#[derive(YaDeserialize, PartialEq, Debug)] #[derive(Default, YaDeserialize, PartialEq, Debug)]
#[yaserde(root = "color")] #[yaserde(root = "color")]
pub enum Color { pub enum Color {
#[default]
White, White,
Black, Black,
} }
impl Default for Color {
fn default() -> Color {
Color::White
}
}
#[derive(YaDeserialize, PartialEq, Debug)] #[derive(YaDeserialize, PartialEq, Debug)]
pub struct RGBColor { pub struct RGBColor {
red: String, red: String,
@ -537,19 +527,14 @@ fn de_attribute_enum() {
background: Color, background: Color,
} }
#[derive(YaDeserialize, PartialEq, Debug)] #[derive(Default, YaDeserialize, PartialEq, Debug)]
#[yaserde(root = "color")] #[yaserde(root = "color")]
pub enum Color { pub enum Color {
#[default]
White, White,
Black, Black,
} }
impl Default for Color {
fn default() -> Color {
Color::White
}
}
let content = "<?xml version=\"1.0\" encoding=\"utf-8\"?><base background=\"Black\" />"; let content = "<?xml version=\"1.0\" encoding=\"utf-8\"?><base background=\"Black\" />";
convert_and_validate!( convert_and_validate!(
content, content,
@ -575,8 +560,9 @@ fn de_complex_enum() {
se: i32, se: i32,
} }
#[derive(YaDeserialize, PartialEq, Debug)] #[derive(Default, YaDeserialize, PartialEq, Debug)]
pub enum Color { pub enum Color {
#[default]
White, White,
Black(String), Black(String),
Orange(String), Orange(String),
@ -593,12 +579,6 @@ fn de_complex_enum() {
Dotted(u32), Dotted(u32),
} }
impl Default for Color {
fn default() -> Color {
Color::White
}
}
let content = r#"<?xml version="1.0" encoding="utf-8"?> let content = r#"<?xml version="1.0" encoding="utf-8"?>
<base> <base>
<background> <background>

View File

@ -13,7 +13,9 @@ fn basic_enum() {
#[derive(Debug, PartialEq, YaDeserialize, YaSerialize)] #[derive(Debug, PartialEq, YaDeserialize, YaSerialize)]
#[yaserde(rename = "color")] #[yaserde(rename = "color")]
#[derive(Default)]
pub enum Color { pub enum Color {
#[default]
White, White,
Black, Black,
#[yaserde(rename = "custom")] #[yaserde(rename = "custom")]
@ -35,12 +37,6 @@ fn basic_enum() {
}, },
} }
impl Default for Color {
fn default() -> Color {
Color::White
}
}
assert_eq!(Color::default(), Color::White); assert_eq!(Color::default(), Color::White);
#[derive(Debug, PartialEq, YaDeserialize, YaSerialize)] #[derive(Debug, PartialEq, YaDeserialize, YaSerialize)]
@ -50,18 +46,13 @@ fn basic_enum() {
blue: String, blue: String,
} }
#[derive(Debug, PartialEq, YaDeserialize, YaSerialize)] #[derive(Debug, PartialEq, YaDeserialize, YaSerialize, Default)]
pub enum Alpha { pub enum Alpha {
#[default]
Transparent, Transparent,
Opaque, Opaque,
} }
impl Default for Alpha {
fn default() -> Alpha {
Alpha::Transparent
}
}
let model = XmlStruct { let model = XmlStruct {
color: Color::Black, color: Color::Black,
}; };
@ -129,17 +120,13 @@ fn attribute_enum() {
#[derive(Debug, PartialEq, YaDeserialize, YaSerialize)] #[derive(Debug, PartialEq, YaDeserialize, YaSerialize)]
#[yaserde(rename = "color")] #[yaserde(rename = "color")]
#[derive(Default)]
pub enum Color { pub enum Color {
#[yaserde(rename = "pink")] #[yaserde(rename = "pink")]
#[default]
Pink, Pink,
} }
impl Default for Color {
fn default() -> Color {
Color::Pink
}
}
let model = XmlStruct { color: Color::Pink }; let model = XmlStruct { color: Color::Pink };
let content = r#"<base color="pink" />"#; let content = r#"<base color="pink" />"#;
@ -166,17 +153,12 @@ fn attribute_enum2() {
#[derive(Debug, PartialEq, YaSerialize, YaDeserialize)] #[derive(Debug, PartialEq, YaSerialize, YaDeserialize)]
#[yaserde(rename = "child2")] #[yaserde(rename = "child2")]
#[derive(Default)]
struct Child2 { struct Child2 {
#[yaserde(attribute)] #[yaserde(attribute)]
pub num: u8, pub num: u8,
} }
impl Default for Child2 {
fn default() -> Child2 {
Child2 { num: 0 }
}
}
#[derive(Debug, PartialEq, YaSerialize, YaDeserialize)] #[derive(Debug, PartialEq, YaSerialize, YaDeserialize)]
#[yaserde(flatten)] #[yaserde(flatten)]
enum Base { enum Base {
@ -246,8 +228,9 @@ fn unnamed_enum() {
se: i32, se: i32,
} }
#[derive(Debug, PartialEq, YaDeserialize, YaSerialize)] #[derive(Debug, PartialEq, YaDeserialize, YaSerialize, Default)]
pub enum Enum { pub enum Enum {
#[default]
Simple, Simple,
Field(String), Field(String),
FullPath(String), FullPath(String),
@ -264,12 +247,6 @@ fn unnamed_enum() {
ToRenameDots(u32), ToRenameDots(u32),
} }
impl Default for Enum {
fn default() -> Enum {
Enum::Simple
}
}
let model = XmlStruct { let model = XmlStruct {
color: Enum::Field("some_text".to_owned()), color: Enum::Field("some_text".to_owned()),
}; };

View File

@ -42,20 +42,15 @@ fn basic_flatten() {
lunar_day: i32, lunar_day: i32,
} }
#[derive(PartialEq, Debug, YaDeserialize, YaSerialize)] #[derive(PartialEq, Debug, YaDeserialize, YaSerialize, Default)]
pub enum DateKind { pub enum DateKind {
#[yaserde(rename = "holidays")] #[yaserde(rename = "holidays")]
Holidays(Vec<String>), Holidays(Vec<String>),
#[yaserde(rename = "working")] #[yaserde(rename = "working")]
#[default]
Working, Working,
} }
impl Default for DateKind {
fn default() -> Self {
DateKind::Working
}
}
let model = DateTime { let model = DateTime {
date: Date { date: Date {
year: 2020, year: 2020,

View File

@ -332,17 +332,13 @@ fn enum_namespace() {
prefix = "ns", prefix = "ns",
namespace = "ns: http://www.sample.com/ns/domain" namespace = "ns: http://www.sample.com/ns/domain"
)] )]
#[derive(Default)]
pub enum XmlStruct { pub enum XmlStruct {
#[yaserde(prefix = "ns")] #[yaserde(prefix = "ns")]
#[default]
Item, Item,
} }
impl Default for XmlStruct {
fn default() -> XmlStruct {
XmlStruct::Item
}
}
let content = r#" let content = r#"
<ns:root xmlns:ns="http://www.sample.com/ns/domain"> <ns:root xmlns:ns="http://www.sample.com/ns/domain">
ns:Item ns:Item
@ -364,19 +360,15 @@ fn enum_multi_namespaces() {
namespace = "ns1: http://www.sample.com/ns/domain1", namespace = "ns1: http://www.sample.com/ns/domain1",
namespace = "ns2: http://www.sample.com/ns/domain2" namespace = "ns2: http://www.sample.com/ns/domain2"
)] )]
#[derive(Default)]
pub enum XmlStruct { pub enum XmlStruct {
#[yaserde(prefix = "ns1")] #[yaserde(prefix = "ns1")]
#[default]
Item1, Item1,
#[yaserde(prefix = "ns2")] #[yaserde(prefix = "ns2")]
Item2, Item2,
} }
impl Default for XmlStruct {
fn default() -> XmlStruct {
XmlStruct::Item1
}
}
let model = XmlStruct::Item1; let model = XmlStruct::Item1;
let content = r#" let content = r#"
<root xmlns:ns1="http://www.sample.com/ns/domain1" xmlns:ns2="http://www.sample.com/ns/domain2"> <root xmlns:ns1="http://www.sample.com/ns/domain1" xmlns:ns2="http://www.sample.com/ns/domain2">
@ -407,19 +399,15 @@ fn enum_attribute_namespace() {
prefix = "ns", prefix = "ns",
namespace = "ns: http://www.sample.com/ns/domain" namespace = "ns: http://www.sample.com/ns/domain"
)] )]
#[derive(Default)]
pub enum XmlStruct { pub enum XmlStruct {
#[yaserde(prefix = "ns")] #[yaserde(prefix = "ns")]
#[default]
Item, Item,
#[yaserde(prefix = "ns")] #[yaserde(prefix = "ns")]
ItemWithField(String), ItemWithField(String),
} }
impl Default for XmlStruct {
fn default() -> XmlStruct {
XmlStruct::Item
}
}
let content = r#" let content = r#"
<ns:rootA xmlns:ns="http://www.sample.com/ns/domain"> <ns:rootA xmlns:ns="http://www.sample.com/ns/domain">
ns:Item ns:Item

View File

@ -85,17 +85,11 @@ fn option_struct() {
field: SubTest, field: SubTest,
} }
#[derive(Debug, PartialEq, YaDeserialize, YaSerialize)] #[derive(Debug, Default, PartialEq, YaDeserialize, YaSerialize)]
struct SubTest { struct SubTest {
content: Option<String>, content: Option<String>,
} }
impl Default for SubTest {
fn default() -> Self {
SubTest { content: None }
}
}
test_for_type!( test_for_type!(
Option::<Test>, Option::<Test>,
Some(Test { Some(Test {
@ -117,18 +111,12 @@ fn option_bool_no_crash_on_bad_input() {
field: SubTest, field: SubTest,
} }
#[derive(Debug, PartialEq, YaDeserialize, YaSerialize)] #[derive(Debug, Default, PartialEq, YaDeserialize, YaSerialize)]
struct SubTest { struct SubTest {
#[yaserde(attribute)] #[yaserde(attribute)]
content: Option<bool>, content: Option<bool>,
} }
impl Default for SubTest {
fn default() -> Self {
SubTest { content: None }
}
}
let content = "<field><content>/<R/"; let content = "<field><content>/<R/";
let result: Result<Test, String> = yaserde::de::from_str(content); let result: Result<Test, String> = yaserde::de::from_str(content);

View File

@ -177,22 +177,17 @@ fn ser_attributes() {
#[test] #[test]
fn ser_attributes_complex() { fn ser_attributes_complex() {
mod other_mod { mod other_mod {
#[derive(YaSerialize, PartialEq, Debug)] #[derive(YaSerialize, PartialEq, Debug, Default)]
pub enum AttrEnum { pub enum AttrEnum {
#[yaserde(rename = "variant 1")] #[yaserde(rename = "variant 1")]
#[default]
Variant1, Variant1,
#[yaserde(rename = "variant 2")] #[yaserde(rename = "variant 2")]
Variant2, Variant2,
} }
impl Default for AttrEnum {
fn default() -> AttrEnum {
AttrEnum::Variant1
}
}
} }
#[derive(YaSerialize, PartialEq, Debug)] #[derive(YaSerialize, PartialEq, Debug, Default)]
pub struct Struct { pub struct Struct {
#[yaserde(attribute)] #[yaserde(attribute)]
attr_option_string: Option<String>, attr_option_string: Option<String>,
@ -200,15 +195,6 @@ fn ser_attributes_complex() {
attr_option_enum: Option<other_mod::AttrEnum>, attr_option_enum: Option<other_mod::AttrEnum>,
} }
impl Default for Struct {
fn default() -> Struct {
Struct {
attr_option_string: None,
attr_option_enum: None,
}
}
}
serialize_and_validate!( serialize_and_validate!(
Struct { Struct {
attr_option_string: None, attr_option_string: None,

View File

@ -187,7 +187,7 @@ fn skip_serializing_if_for_vec() {
skipped_serializing: Vec<i8>, skipped_serializing: Vec<i8>,
} }
impl XmlStruct { impl XmlStruct {
fn check_vec(&self, _child: &Vec<i8>) -> bool { fn check_vec(&self, _child: &[i8]) -> bool {
true true
} }
} }

View File

@ -175,6 +175,7 @@ impl YaSerdeField {
} }
#[derive(Debug)] #[derive(Debug)]
#[allow(clippy::enum_variant_names)]
pub enum Field { pub enum Field {
FieldString, FieldString,
FieldBool, FieldBool,

View File

@ -199,17 +199,17 @@ pub fn parse(
.iter() .iter()
.map(|field| YaSerdeField::new(field.clone())) .map(|field| YaSerdeField::new(field.clone()))
.filter(|field| !field.is_attribute() && field.is_flatten()) .filter(|field| !field.is_attribute() && field.is_flatten())
.filter_map(|field| { .map(|field| {
let value_label = field.get_value_label(); let value_label = field.get_value_label();
match field.get_type() { match field.get_type() {
Field::FieldStruct { .. } => Some(quote! { Field::FieldStruct { .. } => quote! {
#value_label = ::yaserde::de::from_str(&unused_xml_elements)?; #value_label = ::yaserde::de::from_str(&unused_xml_elements)?;
}), },
Field::FieldOption { data_type } => match *data_type { Field::FieldOption { data_type } => match *data_type {
Field::FieldStruct { .. } => Some(quote! { Field::FieldStruct { .. } => quote! {
#value_label = ::yaserde::de::from_str(&unused_xml_elements).ok(); #value_label = ::yaserde::de::from_str(&unused_xml_elements).ok();
}), },
field_type => unimplemented!(r#""flatten" is not implemented for {:?}"#, field_type), field_type => unimplemented!(r#""flatten" is not implemented for {:?}"#, field_type),
}, },
field_type => unimplemented!(r#""flatten" is not implemented for {:?}"#, field_type), field_type => unimplemented!(r#""flatten" is not implemented for {:?}"#, field_type),

View File

@ -33,7 +33,6 @@ pub fn serialize(
let attribute_fields: Vec<_> = all_fields let attribute_fields: Vec<_> = all_fields
.clone() .clone()
.into_iter()
.filter(|field| { .filter(|field| {
field.is_attribute() field.is_attribute()
|| (field.is_flatten() && matches!(field.get_type(), Field::FieldStruct { .. })) || (field.is_flatten() && matches!(field.get_type(), Field::FieldStruct { .. }))