mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-14 03:31:02 +00:00
Refer to Option through serde::export in generated code
This commit is contained in:
@@ -2476,7 +2476,9 @@ fn deserialize_map(
|
|||||||
|
|
||||||
let collected_deny_unknown_fields = if cattrs.has_flatten() && cattrs.deny_unknown_fields() {
|
let collected_deny_unknown_fields = if cattrs.has_flatten() && cattrs.deny_unknown_fields() {
|
||||||
Some(quote! {
|
Some(quote! {
|
||||||
if let _serde::export::Some(_serde::export::Some((__key, _))) = __collect.into_iter().filter(Option::is_some).next() {
|
if let _serde::export::Some(_serde::export::Some((__key, _))) =
|
||||||
|
__collect.into_iter().filter(_serde::export::Option::is_some).next()
|
||||||
|
{
|
||||||
if let _serde::export::Some(__key) = __key.as_str() {
|
if let _serde::export::Some(__key) = __key.as_str() {
|
||||||
return _serde::export::Err(
|
return _serde::export::Err(
|
||||||
_serde::de::Error::custom(format_args!("unknown field `{}`", &__key)));
|
_serde::de::Error::custom(format_args!("unknown field `{}`", &__key)));
|
||||||
|
|||||||
@@ -522,6 +522,13 @@ fn test_gen() {
|
|||||||
}
|
}
|
||||||
assert::<FlattenWith>();
|
assert::<FlattenWith>();
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize)]
|
||||||
|
#[serde(deny_unknown_fields)]
|
||||||
|
struct FlattenDenyUnknown<T> {
|
||||||
|
#[serde(flatten)]
|
||||||
|
t: T,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
struct StaticStrStruct<'a> {
|
struct StaticStrStruct<'a> {
|
||||||
a: &'a str,
|
a: &'a str,
|
||||||
|
|||||||
Reference in New Issue
Block a user