format code
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
use proc_macro2::{Span, TokenStream};
|
||||
use syn::Ident;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use attribute::*;
|
||||
use de::build_default_value::build_default_value;
|
||||
use field_type::*;
|
||||
use proc_macro2::{Span, TokenStream};
|
||||
use quote::TokenStreamExt;
|
||||
@@ -6,7 +7,6 @@ use std::collections::BTreeMap;
|
||||
use syn::DataEnum;
|
||||
use syn::Fields;
|
||||
use syn::Ident;
|
||||
use de::build_default_value::build_default_value;
|
||||
|
||||
pub fn parse(
|
||||
data_enum: &DataEnum,
|
||||
@@ -28,42 +28,72 @@ pub fn parse(
|
||||
let field_attrs = YaSerdeAttribute::parse(&field.attrs);
|
||||
|
||||
match get_field_type(field) {
|
||||
Some(FieldType::FieldTypeString) => {
|
||||
build_default_value(field_label, "e! {String}, "e! {"".to_string()}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeBool) => {
|
||||
build_default_value(field_label, "e! {bool}, "e! {false}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeString) => build_default_value(
|
||||
field_label,
|
||||
"e! {String},
|
||||
"e! {"".to_string()},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(FieldType::FieldTypeBool) => build_default_value(
|
||||
field_label,
|
||||
"e! {bool},
|
||||
"e! {false},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(FieldType::FieldTypeI8) => {
|
||||
build_default_value(field_label, "e! {i8}, "e! {0}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeU8) => {
|
||||
build_default_value(field_label, "e! {u8}, "e! {0}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeI16) => {
|
||||
build_default_value(field_label, "e! {i16}, "e! {0}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeU16) => {
|
||||
build_default_value(field_label, "e! {u16}, "e! {0}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeI32) => {
|
||||
build_default_value(field_label, "e! {i32}, "e! {0}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeU32) => {
|
||||
build_default_value(field_label, "e! {u32}, "e! {0}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeI64) => {
|
||||
build_default_value(field_label, "e! {i64}, "e! {0}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeU64) => {
|
||||
build_default_value(field_label, "e! {u64}, "e! {0}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeF32) => {
|
||||
build_default_value(field_label, "e! {f32}, "e! {0}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeF64) => {
|
||||
build_default_value(field_label, "e! {f64}, "e! {0}, &field_attrs.default)
|
||||
}
|
||||
Some(FieldType::FieldTypeI16) => build_default_value(
|
||||
field_label,
|
||||
"e! {i16},
|
||||
"e! {0},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(FieldType::FieldTypeU16) => build_default_value(
|
||||
field_label,
|
||||
"e! {u16},
|
||||
"e! {0},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(FieldType::FieldTypeI32) => build_default_value(
|
||||
field_label,
|
||||
"e! {i32},
|
||||
"e! {0},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(FieldType::FieldTypeU32) => build_default_value(
|
||||
field_label,
|
||||
"e! {u32},
|
||||
"e! {0},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(FieldType::FieldTypeI64) => build_default_value(
|
||||
field_label,
|
||||
"e! {i64},
|
||||
"e! {0},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(FieldType::FieldTypeU64) => build_default_value(
|
||||
field_label,
|
||||
"e! {u64},
|
||||
"e! {0},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(FieldType::FieldTypeF32) => build_default_value(
|
||||
field_label,
|
||||
"e! {f32},
|
||||
"e! {0},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(FieldType::FieldTypeF64) => build_default_value(
|
||||
field_label,
|
||||
"e! {f64},
|
||||
"e! {0},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(FieldType::FieldTypeStruct { struct_name }) => build_default_value(
|
||||
field_label,
|
||||
"e! {#struct_name},
|
||||
@@ -88,42 +118,78 @@ pub fn parse(
|
||||
Some(FieldType::FieldTypeVec { data_type }) => {
|
||||
let dt = Box::into_raw(data_type);
|
||||
match unsafe { dt.as_ref() } {
|
||||
Some(&FieldType::FieldTypeString) => {
|
||||
build_default_value(field_label, "e! {Vec<String>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeBool) => {
|
||||
build_default_value(field_label, "e! {Vec<bool>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeI8) => {
|
||||
build_default_value(field_label, "e! {Vec<i8>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeU8) => {
|
||||
build_default_value(field_label, "e! {Vec<u8>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeI16) => {
|
||||
build_default_value(field_label, "e! {Vec<i16>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeU16) => {
|
||||
build_default_value(field_label, "e! {Vec<u16>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeI32) => {
|
||||
build_default_value(field_label, "e! {Vec<i32>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeU32) => {
|
||||
build_default_value(field_label, "e! {Vec<u32>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeI64) => {
|
||||
build_default_value(field_label, "e! {Vec<i64>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeU64) => {
|
||||
build_default_value(field_label, "e! {Vec<u64>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeF32) => {
|
||||
build_default_value(field_label, "e! {Vec<f32>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeF64) => {
|
||||
build_default_value(field_label, "e! {Vec<f64>}, "e! {vec![]}, &field_attrs.default)
|
||||
}
|
||||
Some(&FieldType::FieldTypeString) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<String>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeBool) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<bool>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeI8) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<i8>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeU8) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<u8>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeI16) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<i16>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeU16) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<u16>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeI32) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<i32>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeU32) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<u32>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeI64) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<i64>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeU64) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<u64>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeF32) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<f32>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeF64) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<f64>},
|
||||
"e! {vec![]},
|
||||
&field_attrs.default,
|
||||
),
|
||||
Some(&FieldType::FieldTypeStruct { ref struct_name }) => build_default_value(
|
||||
field_label,
|
||||
"e! {Vec<#struct_name>},
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use attribute::*;
|
||||
use de::build_default_value::build_default_value;
|
||||
use field_type::*;
|
||||
use proc_macro2::{Span, TokenStream};
|
||||
use quote::TokenStreamExt;
|
||||
use std::collections::BTreeMap;
|
||||
use syn::DataStruct;
|
||||
use syn::Ident;
|
||||
use de::build_default_value::build_default_value;
|
||||
|
||||
pub fn parse(
|
||||
data_struct: &DataStruct,
|
||||
@@ -14,7 +14,6 @@ pub fn parse(
|
||||
prefix: &Option<String>,
|
||||
namespaces: &BTreeMap<String, String>,
|
||||
) -> TokenStream {
|
||||
|
||||
let namespaces_matches: TokenStream = namespaces
|
||||
.iter()
|
||||
.map(|(p, ns)| {
|
||||
@@ -1361,7 +1360,6 @@ fn build_call_visitor(
|
||||
prefix: &Option<String>,
|
||||
namespaces: &BTreeMap<String, String>,
|
||||
) -> Option<TokenStream> {
|
||||
|
||||
let namespaces_matches: TokenStream = namespaces
|
||||
.iter()
|
||||
.map(|(p, ns)| {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
pub mod build_default_value;
|
||||
pub mod expand_enum;
|
||||
pub mod expand_struct;
|
||||
@@ -17,9 +16,13 @@ pub fn expand_derive_deserialize(ast: &syn::DeriveInput) -> Result<TokenStream,
|
||||
let root = root_attrs.clone().root.unwrap_or_else(|| name.to_string());
|
||||
|
||||
let impl_block = match *data {
|
||||
syn::Data::Struct(ref data_struct) => {
|
||||
expand_struct::parse(data_struct, name, &root, &root_attrs.prefix, &root_attrs.namespaces)
|
||||
}
|
||||
syn::Data::Struct(ref data_struct) => expand_struct::parse(
|
||||
data_struct,
|
||||
name,
|
||||
&root,
|
||||
&root_attrs.prefix,
|
||||
&root_attrs.namespaces,
|
||||
),
|
||||
syn::Data::Enum(ref data_enum) => {
|
||||
expand_enum::parse(data_enum, name, &root, &root_attrs.namespaces)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user