Buttplug sex toy control library
1use std::collections::HashMap; 2 3use getset::Getters; 4use serde::{Deserialize, Serialize}; 5 6use crate::device_config_file::{ 7 ConfigVersion, 8 ConfigVersionGetter, 9 get_internal_config_version, 10 protocol::ProtocolDefinition, 11}; 12 13#[derive(Deserialize, Serialize, Debug, Getters)] 14#[getset(get_mut = "pub", set = "pub")] 15pub struct BaseConfigFile { 16 #[getset(get_copy = "pub")] 17 version: ConfigVersion, 18 #[getset(get = "pub")] 19 #[serde(default, skip_serializing_if = "Option::is_none")] 20 protocols: Option<HashMap<String, ProtocolDefinition>>, 21} 22 23impl Default for BaseConfigFile { 24 fn default() -> Self { 25 Self { 26 version: get_internal_config_version(), 27 protocols: Some(HashMap::new()), 28 } 29 } 30} 31 32impl ConfigVersionGetter for BaseConfigFile { 33 fn version(&self) -> ConfigVersion { 34 self.version 35 } 36}