Do not use ? operator in the generated code where possible

This may slightly improve compilation time and costs nothing
This commit is contained in:
Mingun
2025-05-29 22:22:52 +05:00
parent a866b336f1
commit 9f9a1ea35e
3 changed files with 17 additions and 11 deletions
+6 -3
View File
@@ -594,13 +594,16 @@ fn deserialize_seq_in_place(
let (wrapper, wrapper_ty) = wrap_deserialize_field_with(params, field.ty, path); let (wrapper, wrapper_ty) = wrap_deserialize_field_with(params, field.ty, path);
quote!({ quote!({
#wrapper #wrapper
match _serde::de::SeqAccess::next_element::<#wrapper_ty>(&mut __seq)? { match _serde::de::SeqAccess::next_element::<#wrapper_ty>(&mut __seq) {
_serde::#private::Some(__wrap) => { _serde::#private::Ok(_serde::#private::Some(__wrap)) => {
self.place.#member = __wrap.value; self.place.#member = __wrap.value;
} }
_serde::#private::None => { _serde::#private::Ok(_serde::#private::None) => {
#value_if_none; #value_if_none;
} }
_serde::#private::Err(__err) => {
return _serde::#private::Err(__err);
}
} }
}) })
} }
+8 -6
View File
@@ -282,8 +282,8 @@ pub(super) fn deserialize(
__A: _serde::de::SeqAccess<#delife>, __A: _serde::de::SeqAccess<#delife>,
{ {
// Visit the first element - the tag. // Visit the first element - the tag.
match _serde::de::SeqAccess::next_element(&mut __seq)? { match _serde::de::SeqAccess::next_element(&mut __seq) {
_serde::#private::Some(__variant) => { _serde::#private::Ok(_serde::#private::Some(__variant)) => {
// Visit the second element - the content. // Visit the second element - the content.
match _serde::de::SeqAccess::next_element_seed( match _serde::de::SeqAccess::next_element_seed(
&mut __seq, &mut __seq,
@@ -292,18 +292,20 @@ pub(super) fn deserialize(
marker: _serde::#private::PhantomData, marker: _serde::#private::PhantomData,
lifetime: _serde::#private::PhantomData, lifetime: _serde::#private::PhantomData,
}, },
)? { ) {
_serde::#private::Some(__ret) => _serde::#private::Ok(__ret), _serde::#private::Ok(_serde::#private::Some(__ret)) => _serde::#private::Ok(__ret),
// There is no second element. // There is no second element.
_serde::#private::None => { _serde::#private::Ok(_serde::#private::None) => {
_serde::#private::Err(_serde::de::Error::invalid_length(1, &self)) _serde::#private::Err(_serde::de::Error::invalid_length(1, &self))
} }
_serde::#private::Err(__err) => _serde::#private::Err(__err),
} }
} }
// There is no first element. // There is no first element.
_serde::#private::None => { _serde::#private::Ok(_serde::#private::None) => {
_serde::#private::Err(_serde::de::Error::invalid_length(0, &self)) _serde::#private::Err(_serde::de::Error::invalid_length(0, &self))
} }
_serde::#private::Err(__err) => _serde::#private::Err(__err),
} }
} }
} }
+3 -2
View File
@@ -49,7 +49,7 @@ pub(super) fn deserialize(
)); ));
quote! { quote! {
(__Field::#variant_name, __variant) => #block _serde::#private::Ok((__Field::#variant_name, __variant)) => #block
} }
}); });
@@ -69,8 +69,9 @@ pub(super) fn deserialize(
} }
} else { } else {
quote! { quote! {
match _serde::de::EnumAccess::variant(__data)? { match _serde::de::EnumAccess::variant(__data) {
#(#variant_arms)* #(#variant_arms)*
_serde::#private::Err(__err) => _serde::#private::Err(__err),
} }
} }
}; };