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>,
|
||||
}
|
||||
|
||||
impl<'de, R: Read> Deserializer<R> {
|
||||
impl<R: Read> Deserializer<R> {
|
||||
pub fn new(reader: EventReader<R>) -> Self {
|
||||
Deserializer {
|
||||
depth: 0,
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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()),
|
||||
};
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@ -175,6 +175,7 @@ impl YaSerdeField {
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
#[allow(clippy::enum_variant_names)]
|
||||
pub enum Field {
|
||||
FieldString,
|
||||
FieldBool,
|
||||
|
||||
@ -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),
|
||||
|
||||
@ -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 { .. }))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user