use super::*;
impl<N: Network> FromStr for Request<N> {
type Err = Error;
fn from_str(request: &str) -> Result<Self, Self::Err> {
Ok(serde_json::from_str(request)?)
}
}
impl<N: Network> Debug for Request<N> {
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
Display::fmt(self, f)
}
}
impl<N: Network> Display for Request<N> {
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
write!(f, "{}", serde_json::to_string(self).map_err::<fmt::Error, _>(ser::Error::custom)?)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_string() {
let mut rng = TestRng::default();
for expected in test_helpers::sample_requests(&mut rng).into_iter() {
let expected_string = &expected.to_string();
let candidate_string = serde_json::to_string(&expected).unwrap();
assert_eq!(expected, Request::from_str(expected_string).unwrap());
assert_eq!(expected, serde_json::from_str(&candidate_string).unwrap());
}
}
}