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>,
}
impl<'de, R: Read> Deserializer<R> {
impl<R: Read> Deserializer<R> {
pub fn new(reader: EventReader<R>) -> Self {
Deserializer {
depth: 0,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -199,17 +199,17 @@ pub fn parse(
.iter()
.map(|field| YaSerdeField::new(field.clone()))
.filter(|field| !field.is_attribute() && field.is_flatten())
.filter_map(|field| {
.map(|field| {
let value_label = field.get_value_label();
match field.get_type() {
Field::FieldStruct { .. } => Some(quote! {
Field::FieldStruct { .. } => quote! {
#value_label = ::yaserde::de::from_str(&unused_xml_elements)?;
}),
},
Field::FieldOption { data_type } => match *data_type {
Field::FieldStruct { .. } => Some(quote! {
Field::FieldStruct { .. } => quote! {
#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),

View File

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