Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[derive(Debug)]
- pub struct Lazy<T: Loadable> {
- id: Uuid,
- _marker: std::marker::PhantomData<T>,
- }
- mod impl_serde {
- use super::Lazy;
- use crate::data::Loadable;
- use serde::{Deserialize, Deserializer, Serialize, Serializer};
- use uuid::Uuid;
- impl<'de, T: Loadable + 'de> Deserialize<'de> for Lazy<T> {
- fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
- where
- D: Deserializer<'de>,
- {
- let id = Uuid::deserialize(deserializer)?;
- Ok(Lazy::new(id))
- }
- }
- impl<T: Loadable> Serialize for Lazy<T> {
- fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
- where
- S: Serializer,
- {
- self.id.serialize(serializer)
- }
- }
- }
- i
Add Comment
Please, Sign In to add comment