use crate::message::{ButtplugMessage, ButtplugMessageError, ButtplugMessageValidator};
use getset::CopyGetters;
use serde::{Deserialize, Serialize};
#[derive(Debug, Default, Clone, PartialEq, Eq, CopyGetters, Serialize, Deserialize)]
pub struct DeviceRemovedV0 {
#[serde(rename = "Id")]
id: u32,
#[serde(rename = "DeviceIndex")]
#[getset(get_copy = "pub")]
device_index: u32,
}
impl DeviceRemovedV0 {
pub fn new(device_index: u32) -> Self {
Self {
id: 0,
device_index,
}
}
}
impl ButtplugMessage for DeviceRemovedV0 {
fn id(&self) -> u32 {
self.id
}
fn set_id(&mut self, id: u32) {
self.id = id;
}
}
impl ButtplugMessageValidator for DeviceRemovedV0 {
fn is_valid(&self) -> Result<(), ButtplugMessageError> {
self.is_system_id(self.id)
}
}