spacejson/tuple.rs
1//! Tuple implementations
2
3use crate::Json;
4use anyhow::Result;
5use core::fmt::Debug;
6use serde::{Serialize, de::DeserializeOwned};
7
8impl<M: Serialize + DeserializeOwned + Debug, N: Serialize + DeserializeOwned + Debug, P, Q>
9 Json<(M, N)> for (P, Q)
10where
11 P: Json<M>,
12 Q: Json<N>,
13{
14 fn to_json(self) -> (M, N) {
15 (self.0.to_json(), self.1.to_json())
16 }
17
18 fn from_json(json: (M, N)) -> Result<Self> {
19 Ok((P::from_json(json.0)?, Q::from_json(json.1)?))
20 }
21}