serde_core/private/
seed.rs

1use crate::de::{Deserialize, DeserializeSeed, Deserializer};
2
3/// A DeserializeSeed helper for implementing deserialize_in_place Visitors.
4///
5/// Wraps a mutable reference and calls deserialize_in_place on it.
6pub struct InPlaceSeed<'a, T: 'a>(pub &'a mut T);
7
8#[cfg_attr(not(no_diagnostic_namespace), diagnostic::do_not_recommend)]
9impl<'a, 'de, T> DeserializeSeed<'de> for InPlaceSeed<'a, T>
10where
11    T: Deserialize<'de>,
12{
13    type Value = ();
14    fn deserialize<D>(self, deserializer: D) -> Result<Self::Value, D::Error>
15    where
16        D: Deserializer<'de>,
17    {
18        T::deserialize_in_place(deserializer, self.0)
19    }
20}