20 lines
556 B
Rust
20 lines
556 B
Rust
use de::{Deserialize, DeserializeSeed, Deserializer};
|
|
|
|
/// A DeserializeSeed helper for implementing deserialize_in_place Visitors.
|
|
///
|
|
/// Wraps a mutable reference and calls deserialize_in_place on it.
|
|
pub struct InPlaceSeed<'a, T: 'a>(pub &'a mut T);
|
|
|
|
impl<'a, 'de, T> DeserializeSeed<'de> for InPlaceSeed<'a, T>
|
|
where
|
|
T: Deserialize<'de>,
|
|
{
|
|
type Value = ();
|
|
fn deserialize<D>(self, deserializer: D) -> Result<Self::Value, D::Error>
|
|
where
|
|
D: Deserializer<'de>,
|
|
{
|
|
T::deserialize_in_place(deserializer, self.0)
|
|
}
|
|
}
|