Buttplug sex toy control library
at dev 34 lines 1.0 kB view raw
1// Buttplug Rust Source Code File - See https://buttplug.io for more info. 2// 3// Copyright 2016-2024 Nonpolynomial Labs LLC. All rights reserved. 4// 5// Licensed under the BSD 3-Clause license. See LICENSE file in the project root 6// for full license information. 7 8use super::device_message_info::DeviceMessageInfoV0; 9use buttplug_core::{ 10 errors::ButtplugMessageError, 11 message::{ButtplugMessage, ButtplugMessageFinalizer, ButtplugMessageValidator}, 12}; 13use getset::Getters; 14use serde::{Deserialize, Serialize}; 15 16#[derive( 17 Default, Clone, Debug, PartialEq, Eq, ButtplugMessage, Getters, Serialize, Deserialize, 18)] 19pub struct DeviceListV0 { 20 #[serde(rename = "Id")] 21 pub(in crate::message) id: u32, 22 #[serde(rename = "Devices")] 23 #[getset(get = "pub")] 24 pub(in crate::message) devices: Vec<DeviceMessageInfoV0>, 25} 26 27impl ButtplugMessageValidator for DeviceListV0 { 28 fn is_valid(&self) -> Result<(), ButtplugMessageError> { 29 self.is_not_system_id(self.id) 30 } 31} 32 33impl ButtplugMessageFinalizer for DeviceListV0 { 34}