Buttplug sex toy control library
at dev 1.7 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 crate::message::v1::{ClientDeviceMessageAttributesV1, DeviceMessageInfoV1}; 9 10use super::*; 11use getset::{CopyGetters, Getters}; 12use serde::{Deserialize, Serialize}; 13 14#[derive(Clone, Debug, PartialEq, Eq, Getters, CopyGetters, Serialize, Deserialize)] 15pub struct DeviceMessageInfoV2 { 16 #[serde(rename = "DeviceIndex")] 17 #[getset(get_copy = "pub")] 18 pub(in crate::message) device_index: u32, 19 #[serde(rename = "DeviceName")] 20 #[getset(get = "pub")] 21 pub(in crate::message) device_name: String, 22 #[serde(rename = "DeviceMessages")] 23 #[getset(get = "pub")] 24 pub(in crate::message) device_messages: ClientDeviceMessageAttributesV2, 25} 26 27impl From<DeviceMessageInfoV2> for DeviceMessageInfoV1 { 28 fn from(device_message_info: DeviceMessageInfoV2) -> Self { 29 // No structural difference, it's all content changes 30 Self { 31 device_index: device_message_info.device_index(), 32 device_name: device_message_info.device_name().clone(), 33 device_messages: ClientDeviceMessageAttributesV1::from( 34 device_message_info.device_messages().clone(), 35 ), 36 } 37 } 38} 39 40impl From<DeviceAddedV2> for DeviceMessageInfoV2 { 41 fn from(device_added: DeviceAddedV2) -> Self { 42 // No structural difference, it's all content changes 43 Self { 44 device_index: device_added.device_index(), 45 device_name: device_added.device_name().clone(), 46 device_messages: device_added.device_messages().clone(), 47 } 48 } 49}