Buttplug sex toy control library
1use getset::{Getters, MutGetters, Setters};
2use serde::{Deserialize, Serialize};
3
4use super::device::ConfigBaseDeviceDefinition;
5
6use crate::ProtocolCommunicationSpecifier;
7
8#[derive(Deserialize, Serialize, Debug, Clone, Default, Getters, Setters, MutGetters)]
9#[getset(get = "pub", set = "pub", get_mut = "pub(crate)")]
10pub(super) struct ProtocolDefinition {
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub communication: Option<Vec<ProtocolCommunicationSpecifier>>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub defaults: Option<ConfigBaseDeviceDefinition>,
15 #[serde(default)]
16 pub configurations: Vec<ConfigBaseDeviceDefinition>,
17}