Buttplug sex toy control library
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::DeviceMessageInfoV2;
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 DeviceListV2 {
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<DeviceMessageInfoV2>,
25}
26
27impl ButtplugMessageValidator for DeviceListV2 {
28 fn is_valid(&self) -> Result<(), ButtplugMessageError> {
29 self.is_not_system_id(self.id)
30 }
31}
32
33impl ButtplugMessageFinalizer for DeviceListV2 {
34}