mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-27 11:07:56 +00:00
Make InPlaceSeed private
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#[cfg(all(not(no_serde_derive), any(feature = "std", feature = "alloc")))]
|
||||
mod content;
|
||||
mod seed;
|
||||
|
||||
#[doc(hidden)]
|
||||
pub mod size_hint;
|
||||
@@ -10,3 +11,5 @@ pub mod string;
|
||||
#[cfg(all(not(no_serde_derive), any(feature = "std", feature = "alloc")))]
|
||||
#[doc(hidden)]
|
||||
pub use self::content::{Content, ContentVisitor};
|
||||
#[doc(hidden)]
|
||||
pub use self::seed::InPlaceSeed;
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
use crate::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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user