Skip to content

Commit f6cc4f3

Browse files
authored
Merge pull request #1045 from ZetaNumbers/value-ref-into-deserializer
Implement IntoDeserializer for &Value
2 parents 8f90eac + 8e8db8c commit f6cc4f3

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/value/de.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,14 @@ impl<'de> IntoDeserializer<'de, Error> for Value {
482482
}
483483
}
484484

485+
impl<'de> IntoDeserializer<'de, Error> for &'de Value {
486+
type Deserializer = Self;
487+
488+
fn into_deserializer(self) -> Self::Deserializer {
489+
self
490+
}
491+
}
492+
485493
struct VariantDeserializer {
486494
value: Option<Value>,
487495
}

tests/test.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2472,6 +2472,12 @@ fn test_value_into_deserializer() {
24722472
let mut map = BTreeMap::new();
24732473
map.insert("inner", json!({ "string": "Hello World" }));
24742474

2475+
let outer = Outer::deserialize(serde::de::value::MapDeserializer::new(
2476+
map.iter().map(|(k, v)| (*k, v)),
2477+
))
2478+
.unwrap();
2479+
assert_eq!(outer.inner.string, "Hello World");
2480+
24752481
let outer = Outer::deserialize(map.into_deserializer()).unwrap();
24762482
assert_eq!(outer.inner.string, "Hello World");
24772483
}

0 commit comments

Comments
 (0)