refactor: improve code based on clippy
This commit is contained in:
parent
568de4e1f0
commit
a9b7aa2546
@ -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,
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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()),
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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),
|
||||||
|
|||||||
@ -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 { .. }))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user