mirror of
https://github.com/serde-rs/serde.git
synced 2025-10-02 15:25:38 +00:00
Eliminate closures capturing needlessly many type parameters
This commit is contained in:
parent
89c4b02bf3
commit
1d7b009aec
@ -476,14 +476,16 @@ mod content {
|
|||||||
where
|
where
|
||||||
D: Deserializer<'de>,
|
D: Deserializer<'de>,
|
||||||
{
|
{
|
||||||
Deserialize::deserialize(deserializer).map(|v| Content::Some(Box::new(v)))
|
let v = tri!(Deserialize::deserialize(deserializer));
|
||||||
|
Ok(Content::Some(Box::new(v)))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_newtype_struct<D>(self, deserializer: D) -> Result<Self::Value, D::Error>
|
fn visit_newtype_struct<D>(self, deserializer: D) -> Result<Self::Value, D::Error>
|
||||||
where
|
where
|
||||||
D: Deserializer<'de>,
|
D: Deserializer<'de>,
|
||||||
{
|
{
|
||||||
Deserialize::deserialize(deserializer).map(|v| Content::Newtype(Box::new(v)))
|
let v = tri!(Deserialize::deserialize(deserializer));
|
||||||
|
Ok(Content::Newtype(Box::new(v)))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_seq<V>(self, mut visitor: V) -> Result<Self::Value, V::Error>
|
fn visit_seq<V>(self, mut visitor: V) -> Result<Self::Value, V::Error>
|
||||||
@ -1113,9 +1115,13 @@ mod content {
|
|||||||
V: Visitor<'de>,
|
V: Visitor<'de>,
|
||||||
E: de::Error,
|
E: de::Error,
|
||||||
{
|
{
|
||||||
let map = content
|
fn content_deserializer_pair<'de, E>(
|
||||||
.into_iter()
|
(k, v): (Content<'de>, Content<'de>),
|
||||||
.map(|(k, v)| (ContentDeserializer::new(k), ContentDeserializer::new(v)));
|
) -> (ContentDeserializer<'de, E>, ContentDeserializer<'de, E>) {
|
||||||
|
(ContentDeserializer::new(k), ContentDeserializer::new(v))
|
||||||
|
}
|
||||||
|
|
||||||
|
let map = content.into_iter().map(content_deserializer_pair);
|
||||||
let mut map_visitor = MapDeserializer::new(map);
|
let mut map_visitor = MapDeserializer::new(map);
|
||||||
let value = tri!(visitor.visit_map(&mut map_visitor));
|
let value = tri!(visitor.visit_map(&mut map_visitor));
|
||||||
tri!(map_visitor.end());
|
tri!(map_visitor.end());
|
||||||
@ -1709,12 +1715,19 @@ mod content {
|
|||||||
V: Visitor<'de>,
|
V: Visitor<'de>,
|
||||||
E: de::Error,
|
E: de::Error,
|
||||||
{
|
{
|
||||||
let map = content.iter().map(|(k, v)| {
|
fn content_ref_deserializer_pair<'a, 'de, E>(
|
||||||
|
(k, v): &'a (Content<'de>, Content<'de>),
|
||||||
|
) -> (
|
||||||
|
ContentRefDeserializer<'a, 'de, E>,
|
||||||
|
ContentRefDeserializer<'a, 'de, E>,
|
||||||
|
) {
|
||||||
(
|
(
|
||||||
ContentRefDeserializer::new(k),
|
ContentRefDeserializer::new(k),
|
||||||
ContentRefDeserializer::new(v),
|
ContentRefDeserializer::new(v),
|
||||||
)
|
)
|
||||||
});
|
}
|
||||||
|
|
||||||
|
let map = content.iter().map(content_ref_deserializer_pair);
|
||||||
let mut map_visitor = MapDeserializer::new(map);
|
let mut map_visitor = MapDeserializer::new(map);
|
||||||
let value = tri!(visitor.visit_map(&mut map_visitor));
|
let value = tri!(visitor.visit_map(&mut map_visitor));
|
||||||
tri!(map_visitor.end());
|
tri!(map_visitor.end());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user