Make InPlaceSeed private

This commit is contained in:
David Tolnay committed 2025-09-13 14:29:23 -07:00
1 parent f916ec6baa
commit 5ac3d84d99
6 files changed
+6 -7

No files matched your search

+3
View File
@@ -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;
+19
View File
@@ -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)
}
}