use std::fs; use anyhow::Result; use serde::{Deserialize, Serialize}; use serde_json::{from_str, to_string_pretty}; #[derive(Clone, PartialEq, Eq, Deserialize, Serialize, Debug)] pub struct Devices { pub plugs: Vec, } impl Devices { pub async fn read(file: &str) -> Result { Ok(from_str(&fs::read_to_string(file)?)?) } #[allow(unused)] pub fn save(&self, file: &str) -> Result<()> { fs::write(file, to_string_pretty(self)?)?; Ok(()) } } #[cfg(test)] mod test { use super::Devices; use anyhow::Result; #[test] fn create_conf() -> Result<()> { let devices = Devices { plugs: vec!["Dev1".to_string(), "Dev2".to_string()], }; devices.save("test_devices.conf") } }