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}