mirror of
https://github.com/serde-rs/serde.git
synced 2025-10-02 23:35:26 +00:00
Test transparent attribute
This commit is contained in:
parent
0a4d536253
commit
1335f85213
@ -15,6 +15,7 @@ extern crate serde;
|
|||||||
use self::serde::de::{self, Unexpected};
|
use self::serde::de::{self, Unexpected};
|
||||||
use self::serde::{Deserialize, Deserializer, Serialize, Serializer};
|
use self::serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
use std::marker::PhantomData;
|
||||||
|
|
||||||
extern crate serde_test;
|
extern crate serde_test;
|
||||||
use self::serde_test::{
|
use self::serde_test::{
|
||||||
@ -2161,3 +2162,41 @@ fn test_flatten_option() {
|
|||||||
&[Token::Map { len: None }, Token::MapEnd],
|
&[Token::Map { len: None }, Token::MapEnd],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_transparent_struct() {
|
||||||
|
#[derive(Serialize, Deserialize, PartialEq, Debug)]
|
||||||
|
#[serde(transparent)]
|
||||||
|
struct Transparent {
|
||||||
|
#[serde(skip)]
|
||||||
|
a: bool,
|
||||||
|
b: u32,
|
||||||
|
#[serde(skip)]
|
||||||
|
c: bool,
|
||||||
|
d: PhantomData<()>,
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_tokens(
|
||||||
|
&Transparent {
|
||||||
|
a: false,
|
||||||
|
b: 1,
|
||||||
|
c: false,
|
||||||
|
d: PhantomData,
|
||||||
|
},
|
||||||
|
&[Token::U32(1)],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_transparent_tuple_struct() {
|
||||||
|
#[derive(Serialize, Deserialize, PartialEq, Debug)]
|
||||||
|
#[serde(transparent)]
|
||||||
|
struct Transparent(
|
||||||
|
#[serde(skip)] bool,
|
||||||
|
u32,
|
||||||
|
#[serde(skip)] bool,
|
||||||
|
PhantomData<()>,
|
||||||
|
);
|
||||||
|
|
||||||
|
assert_tokens(&Transparent(false, 1, false, PhantomData), &[Token::U32(1)]);
|
||||||
|
}
|
||||||
|
@ -653,6 +653,14 @@ fn test_gen() {
|
|||||||
X,
|
X,
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize)]
|
||||||
|
#[serde(transparent)]
|
||||||
|
struct TransparentWith {
|
||||||
|
#[serde(serialize_with = "ser_x")]
|
||||||
|
#[serde(deserialize_with = "de_x")]
|
||||||
|
x: X,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
x
Reference in New Issue
Block a user