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}