object_rainbow_point/point_deserialize.rs
1use std::result::Result;
2
3use object_rainbow::Traversible;
4use serde::{Deserialize, de::DeserializeOwned};
5
6use crate::{IntoPoint, Point};
7
8impl<'de, T: DeserializeOwned + Traversible + Clone> Deserialize<'de> for Point<T> {
9 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
10 where
11 D: serde::Deserializer<'de>,
12 {
13 Ok(T::deserialize(deserializer)?.point())
14 }
15}