Merge pull request #2436 from Mingun/flatten-ignored-any
Allow to flatten `IgnoredAny`
This commit is contained in:
commit
3686277e14
@ -107,7 +107,7 @@ use de::{
|
||||
/// # Ok(())
|
||||
/// # }
|
||||
/// ```
|
||||
#[derive(Copy, Clone, Debug, Default)]
|
||||
#[derive(Copy, Clone, Debug, Default, PartialEq)]
|
||||
pub struct IgnoredAny;
|
||||
|
||||
impl<'de> Visitor<'de> for IgnoredAny {
|
||||
|
@ -2794,6 +2794,13 @@ where
|
||||
visitor.visit_unit()
|
||||
}
|
||||
|
||||
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>
|
||||
where
|
||||
V: Visitor<'de>,
|
||||
{
|
||||
visitor.visit_unit()
|
||||
}
|
||||
|
||||
forward_to_deserialize_other! {
|
||||
deserialize_bool()
|
||||
deserialize_i8()
|
||||
@ -2816,7 +2823,6 @@ where
|
||||
deserialize_tuple(usize)
|
||||
deserialize_tuple_struct(&'static str, usize)
|
||||
deserialize_identifier()
|
||||
deserialize_ignored_any()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
clippy::uninlined_format_args,
|
||||
)]
|
||||
|
||||
use serde::de::{self, MapAccess, Unexpected, Visitor};
|
||||
use serde::de::{self, IgnoredAny, MapAccess, Unexpected, Visitor};
|
||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||
|
||||
use std::collections::{BTreeMap, HashMap};
|
||||
@ -2697,6 +2697,31 @@ fn test_flatten_option() {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_flatten_ignored_any() {
|
||||
#[derive(Deserialize, PartialEq, Debug)]
|
||||
struct Outer {
|
||||
#[serde(flatten)]
|
||||
inner: IgnoredAny,
|
||||
}
|
||||
|
||||
assert_de_tokens(
|
||||
&Outer { inner: IgnoredAny },
|
||||
&[Token::Map { len: None }, Token::MapEnd],
|
||||
);
|
||||
|
||||
assert_de_tokens(
|
||||
&Outer { inner: IgnoredAny },
|
||||
&[
|
||||
Token::Struct {
|
||||
name: "DoNotMatter",
|
||||
len: 0,
|
||||
},
|
||||
Token::StructEnd,
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_transparent_struct() {
|
||||
#[derive(Serialize, Deserialize, PartialEq, Debug)]
|
||||
|
Loading…
x
Reference in New Issue
Block a user