@@ -33,7 +33,7 @@ use std::time::{Duration, UNIX_EPOCH};
3333use std:: sync:: atomic:: { AtomicI64 , AtomicU64 } ;
3434
3535use fnv:: FnvHasher ;
36- use serde:: de:: DeserializeOwned ;
36+ use serde:: de:: { DeserializeOwned , IntoDeserializer } ;
3737use serde:: { Deserialize , Deserializer } ;
3838use serde_test:: { assert_de_tokens, Configure , Token } ;
3939
@@ -202,9 +202,8 @@ fn assert_de_tokens_ignore(ignorable_tokens: &[Token]) {
202202 . chain ( vec ! [ Token :: MapEnd ] . into_iter ( ) )
203203 . collect ( ) ;
204204
205- let mut de = serde_test:: Deserializer :: new ( & concated_tokens) ;
206- let base = IgnoreBase :: deserialize ( & mut de) . unwrap ( ) ;
207- assert_eq ! ( base, IgnoreBase { a: 1 } ) ;
205+ let expected = IgnoreBase { a : 1 } ;
206+ assert_de_tokens ( & expected, & concated_tokens) ;
208207}
209208
210209//////////////////////////////////////////////////////////////////////////
@@ -2245,39 +2244,34 @@ fn test_cstr() {
22452244
22462245#[ test]
22472246fn test_atomics ( ) {
2248- fn test < L , A , T > ( load : L , val : T , token : Token )
2247+ fn test < L , A , T > ( load : L , val : T )
22492248 where
22502249 L : Fn ( & A , Ordering ) -> T ,
22512250 A : DeserializeOwned ,
2252- T : PartialEq + Debug ,
2251+ T : PartialEq + Debug + Copy + for < ' de > IntoDeserializer < ' de > ,
22532252 {
2254- let tokens = & [ token] ;
2255- let mut de = serde_test:: Deserializer :: new ( tokens) ;
2256- match A :: deserialize ( & mut de) {
2253+ match A :: deserialize ( val. into_deserializer ( ) ) {
22572254 Ok ( v) => {
22582255 let loaded = load ( & v, Ordering :: Relaxed ) ;
22592256 assert_eq ! ( val, loaded) ;
22602257 }
22612258 Err ( e) => panic ! ( "tokens failed to deserialize: {}" , e) ,
2262- } ;
2263- if de. remaining ( ) > 0 {
2264- panic ! ( "{} remaining tokens" , de. remaining( ) ) ;
22652259 }
22662260 }
22672261
2268- test ( AtomicBool :: load, true , Token :: Bool ( true ) ) ;
2269- test ( AtomicI8 :: load, -127 , Token :: I8 ( - 127i8 ) ) ;
2270- test ( AtomicI16 :: load, -510 , Token :: I16 ( - 510i16 ) ) ;
2271- test ( AtomicI32 :: load, -131072 , Token :: I32 ( - 131072i32 ) ) ;
2272- test ( AtomicIsize :: load, -131072isize , Token :: I32 ( - 131072 ) ) ;
2273- test ( AtomicU8 :: load, 127 , Token :: U8 ( 127u8 ) ) ;
2274- test ( AtomicU16 :: load, 510u16 , Token :: U16 ( 510u16 ) ) ;
2275- test ( AtomicU32 :: load, 131072u32 , Token :: U32 ( 131072u32 ) ) ;
2276- test ( AtomicUsize :: load, 131072usize , Token :: U32 ( 131072 ) ) ;
2262+ test ( AtomicBool :: load, true ) ;
2263+ test ( AtomicI8 :: load, -127i8 ) ;
2264+ test ( AtomicI16 :: load, -510i16 ) ;
2265+ test ( AtomicI32 :: load, -131072i32 ) ;
2266+ test ( AtomicIsize :: load, -131072isize ) ;
2267+ test ( AtomicU8 :: load, 127u8 ) ;
2268+ test ( AtomicU16 :: load, 510u16 ) ;
2269+ test ( AtomicU32 :: load, 131072u32 ) ;
2270+ test ( AtomicUsize :: load, 131072usize ) ;
22772271
22782272 #[ cfg( target_arch = "x86_64" ) ]
22792273 {
2280- test ( AtomicI64 :: load, -8589934592 , Token :: I64 ( - 8589934592 ) ) ;
2281- test ( AtomicU64 :: load, 8589934592u64 , Token :: U64 ( 8589934592 ) ) ;
2274+ test ( AtomicI64 :: load, -8589934592i64 ) ;
2275+ test ( AtomicU64 :: load, 8589934592u64 ) ;
22822276 }
22832277}
0 commit comments