snarkvm_console_program/request/
string.rs1use super::*;
17
18impl<N: Network> FromStr for Request<N> {
19 type Err = Error;
20
21 fn from_str(request: &str) -> Result<Self, Self::Err> {
23 Ok(serde_json::from_str(request)?)
24 }
25}
26
27impl<N: Network> Debug for Request<N> {
28 fn fmt(&self, f: &mut Formatter) -> fmt::Result {
30 Display::fmt(self, f)
31 }
32}
33
34impl<N: Network> Display for Request<N> {
35 fn fmt(&self, f: &mut Formatter) -> fmt::Result {
37 write!(f, "{}", serde_json::to_string(self).map_err::<fmt::Error, _>(ser::Error::custom)?)
38 }
39}
40
41#[cfg(test)]
42mod tests {
43 use super::*;
44
45 #[test]
46 fn test_string() {
47 let mut rng = TestRng::default();
48
49 for expected in test_helpers::sample_requests(&mut rng).into_iter() {
50 let expected_string = &expected.to_string();
52 let candidate_string = serde_json::to_string(&expected).unwrap();
53
54 assert_eq!(expected, Request::from_str(expected_string).unwrap());
56 assert_eq!(expected, serde_json::from_str(&candidate_string).unwrap());
57 }
58 }
59}