Buttplug sex toy control library
1// Buttplug Rust Source Code File - See https://buttplug.io for more info.
2//
3// Copyright 2016-2025 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::device::{
9 hardware::Hardware,
10 protocol::{
11 ProtocolHandler,
12 ProtocolIdentifier,
13 ProtocolInitializer,
14 generic_protocol_initializer_setup,
15 },
16 protocol_impl::kiiroo_v21::KiirooV21,
17};
18use async_trait::async_trait;
19use buttplug_core::errors::ButtplugDeviceError;
20use buttplug_server_device_config::{
21 ProtocolCommunicationSpecifier,
22 ServerDeviceDefinition,
23 UserDeviceIdentifier,
24};
25use std::sync::Arc;
26
27generic_protocol_initializer_setup!(KiirooV3, "kiiroo-v3");
28
29#[derive(Default)]
30pub struct KiirooV3Initializer {}
31
32#[async_trait]
33impl ProtocolInitializer for KiirooV3Initializer {
34 async fn initialize(
35 &mut self,
36 _: Arc<Hardware>,
37 _: &ServerDeviceDefinition,
38 ) -> Result<Arc<dyn ProtocolHandler>, ButtplugDeviceError> {
39 Ok(Arc::new(KiirooV21::default()))
40 }
41}