mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-15 21:21:01 +00:00
Use BuildHasher instead of Hasher in collection macros
This commit is contained in:
@@ -34,9 +34,8 @@ macro_rules! hashset {
|
|||||||
$(set.insert($value);)+
|
$(set.insert($value);)+
|
||||||
set
|
set
|
||||||
}};
|
}};
|
||||||
($hasher:ident @ $($value:expr),+) => {{
|
($hasher:ty; $($value:expr),+) => {{
|
||||||
use std::hash::BuildHasherDefault;
|
let mut set = HashSet::<_, $hasher>::default();
|
||||||
let mut set = HashSet::with_hasher(BuildHasherDefault::<$hasher>::default());
|
|
||||||
$(set.insert($value);)+
|
$(set.insert($value);)+
|
||||||
set
|
set
|
||||||
}};
|
}};
|
||||||
@@ -51,9 +50,8 @@ macro_rules! hashmap {
|
|||||||
$(map.insert($key, $value);)+
|
$(map.insert($key, $value);)+
|
||||||
map
|
map
|
||||||
}};
|
}};
|
||||||
($hasher:ident @ $($key:expr => $value:expr),+) => {{
|
($hasher:ty; $($key:expr => $value:expr),+) => {{
|
||||||
use std::hash::BuildHasherDefault;
|
let mut map = HashMap::<_, _, $hasher>::default();
|
||||||
let mut map = HashMap::with_hasher(BuildHasherDefault::<$hasher>::default());
|
|
||||||
$(map.insert($key, $value);)+
|
$(map.insert($key, $value);)+
|
||||||
map
|
map
|
||||||
}};
|
}};
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
)]
|
)]
|
||||||
#![cfg_attr(feature = "unstable", feature(never_type))]
|
#![cfg_attr(feature = "unstable", feature(never_type))]
|
||||||
|
|
||||||
use fnv::FnvHasher;
|
use fnv::FnvBuildHasher;
|
||||||
use serde::de::value::{F32Deserializer, F64Deserializer};
|
use serde::de::value::{F32Deserializer, F64Deserializer};
|
||||||
use serde::de::{Deserialize, DeserializeOwned, Deserializer, IntoDeserializer};
|
use serde::de::{Deserialize, DeserializeOwned, Deserializer, IntoDeserializer};
|
||||||
use serde_derive::Deserialize;
|
use serde_derive::Deserialize;
|
||||||
@@ -1040,7 +1040,7 @@ fn test_hashset() {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
test(
|
test(
|
||||||
hashset![FnvHasher @ 1, 2, 3],
|
hashset![FnvBuildHasher; 1, 2, 3],
|
||||||
&[
|
&[
|
||||||
Token::Seq { len: Some(3) },
|
Token::Seq { len: Some(3) },
|
||||||
Token::I32(1),
|
Token::I32(1),
|
||||||
@@ -1275,7 +1275,7 @@ fn test_hashmap() {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
test(
|
test(
|
||||||
hashmap![FnvHasher @ 1 => 2, 3 => 4],
|
hashmap![FnvBuildHasher; 1 => 2, 3 => 4],
|
||||||
&[
|
&[
|
||||||
Token::Map { len: Some(2) },
|
Token::Map { len: Some(2) },
|
||||||
Token::I32(1),
|
Token::I32(1),
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#![allow(clippy::derive_partial_eq_without_eq, clippy::unreadable_literal)]
|
#![allow(clippy::derive_partial_eq_without_eq, clippy::unreadable_literal)]
|
||||||
#![cfg_attr(feature = "unstable", feature(never_type))]
|
#![cfg_attr(feature = "unstable", feature(never_type))]
|
||||||
|
|
||||||
use fnv::FnvHasher;
|
use fnv::FnvBuildHasher;
|
||||||
use serde_derive::Serialize;
|
use serde_derive::Serialize;
|
||||||
use serde_test::{assert_ser_tokens, assert_ser_tokens_error, Configure, Token};
|
use serde_test::{assert_ser_tokens, assert_ser_tokens_error, Configure, Token};
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
@@ -220,7 +220,7 @@ fn test_hashset() {
|
|||||||
&[Token::Seq { len: Some(1) }, Token::I32(1), Token::SeqEnd],
|
&[Token::Seq { len: Some(1) }, Token::I32(1), Token::SeqEnd],
|
||||||
);
|
);
|
||||||
assert_ser_tokens(
|
assert_ser_tokens(
|
||||||
&hashset![FnvHasher @ 1],
|
&hashset![FnvBuildHasher; 1],
|
||||||
&[Token::Seq { len: Some(1) }, Token::I32(1), Token::SeqEnd],
|
&[Token::Seq { len: Some(1) }, Token::I32(1), Token::SeqEnd],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -300,7 +300,7 @@ fn test_hashmap() {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
assert_ser_tokens(
|
assert_ser_tokens(
|
||||||
&hashmap![FnvHasher @ 1 => 2],
|
&hashmap![FnvBuildHasher; 1 => 2],
|
||||||
&[
|
&[
|
||||||
Token::Map { len: Some(1) },
|
Token::Map { len: Some(1) },
|
||||||
Token::I32(1),
|
Token::I32(1),
|
||||||
|
|||||||
Reference in New Issue
Block a user