scarb_ui/components/
machine.rs

1use serde::{Serialize, Serializer};
2
3use crate::Message;
4
5/// Print a machine-oriented object as JSON.
6///
7/// In text mode, the value will be pretty-printed.
8#[derive(Serialize)]
9pub struct MachineMessage<T>(pub T);
10
11impl<T> Message for MachineMessage<T>
12where
13    T: Serialize,
14{
15    fn text(self) -> String {
16        serde_json::to_string_pretty(&self.0).expect("MachineData must serialize without panics")
17    }
18
19    fn structured<S: Serializer>(self, ser: S) -> Result<S::Ok, S::Error> {
20        self.0.serialize(ser)
21    }
22}