havok_serde/de/seed.rs
1// SPDX-License-Identifier: Apache-2.0 OR MIT
2//
3// The following code was written by modifying serde ver. 1.0.202.
4// See: https://github.com/serde-rs/serde/commit/58b3af4c2915c3ae789778a11f3b7a468c1cec17
5//
6// And serde holds the same license as Rust. https://github.com/rust-lang/rust/pull/43498
7use crate::de::{Deserialize, DeserializeSeed, Deserializer};
8
9/// A DeserializeSeed helper for implementing deserialize_in_place Visitors.
10///
11/// Wraps a mutable reference and calls deserialize_in_place on it.
12pub struct InPlaceSeed<'a, T: 'a>(pub &'a mut T);
13
14impl<'de, T> DeserializeSeed<'de> for InPlaceSeed<'_, T>
15where
16 T: Deserialize<'de>,
17{
18 type Value = ();
19 fn deserialize<D>(self, deserializer: D) -> Result<Self::Value, D::Error>
20 where
21 D: Deserializer<'de>,
22 {
23 T::deserialize_in_place(deserializer, self.0)
24 }
25}