diff options
-rw-r--r-- | derive/src/lib.rs | 18 | ||||
-rw-r--r-- | src/lib.rs | 10 |
2 files changed, 13 insertions, 15 deletions
diff --git a/derive/src/lib.rs b/derive/src/lib.rs index ae9842c..0cb4e62 100644 --- a/derive/src/lib.rs +++ b/derive/src/lib.rs @@ -45,10 +45,8 @@ fn wrap_attr(attr: &mut syn::Attribute) { #[proc_macro_attribute] pub fn mt_derive(attr: TokenStream, item: TokenStream) -> TokenStream { - let item2 = item.clone(); - let attr_args = parse_macro_input!(attr as syn::AttributeArgs); - let mut input = parse_macro_input!(item2 as syn::Item); + let mut input = parse_macro_input!(item as syn::Item); let args = match MacroArgs::from_list(&attr_args) { Ok(v) => v, @@ -256,7 +254,7 @@ fn serialize_args(res: darling::Result<MtArgs>, body: impl FnOnce(&MtArgs) -> To code } - Err(e) => return e.write_errors(), + Err(e) => e.write_errors(), } } @@ -335,7 +333,7 @@ fn deserialize_args(res: darling::Result<MtArgs>, body: impl FnOnce(&MtArgs) -> code } - Err(e) => return e.write_errors(), + Err(e) => e.write_errors(), } } @@ -426,7 +424,7 @@ fn iter_variants(e: &syn::DataEnum, args: &MtArgs, mut f: impl FnMut(&syn::Varia v.discriminant.clone().map(|x| x.1).unwrap_or(discr) }; - f(&v, &discr); + f(v, &discr); discr = parse_quote! { 1 + #discr }; } @@ -440,10 +438,10 @@ pub fn derive_serialize(input: TokenStream) -> TokenStream { let code = serialize_args(MtArgs::from_derive_input(&input), |args| { match &input.data { syn::Data::Enum(e) => { - let repr = get_repr(&input, &args); + let repr = get_repr(&input, args); let mut variants = TokStr::new(); - iter_variants(&e, &args, |v, discr| { + iter_variants(e, args, |v, discr| { let (fields, fields_struct) = get_fields_struct(&v.fields); let code = serialize_args(MtArgs::from_variant(v), |_| serialize_fields(&fields)); @@ -492,12 +490,12 @@ pub fn derive_deserialize(input: TokenStream) -> TokenStream { let code = deserialize_args(MtArgs::from_derive_input(&input), |args| { match &input.data { syn::Data::Enum(e) => { - let repr = get_repr(&input, &args); + let repr = get_repr(&input, args); let mut consts = TokStr::new(); let mut arms = TokStr::new(); - iter_variants(&e, &args, |v, discr| { + iter_variants(e, args, |v, discr| { let ident = &v.ident; let (fields, fields_struct) = get_fields_struct(&v.fields); let code = deserialize_args(MtArgs::from_variant(v), |_| { @@ -194,9 +194,9 @@ impl<T: MtCfgLen> MtCfg for T { } fn read_len(reader: &mut impl Read) -> Result<Self::Len, DeserializeError> { - Ok(Self::mt_deserialize::<DefCfg>(reader)? + Self::mt_deserialize::<DefCfg>(reader)? .try_into() - .map_err(Into::into)?) + .map_err(Into::into) } } @@ -369,9 +369,9 @@ pub fn mt_serialize_seq<C: MtCfg, T: MtSerialize>( .try_for_each(|item| item.mt_serialize::<C::Inner>(writer)) } -pub fn mt_deserialize_seq<'a, C: MtCfg, T: MtDeserialize>( - reader: &'a mut impl Read, -) -> Result<impl Iterator<Item = Result<T, DeserializeError>> + 'a, DeserializeError> { +pub fn mt_deserialize_seq<C: MtCfg, T: MtDeserialize>( + reader: &mut impl Read, +) -> Result<impl Iterator<Item = Result<T, DeserializeError>> + '_, DeserializeError> { let len = C::read_len(reader)?; mt_deserialize_sized_seq::<C, _>(&len, reader) } |