Skip to main content

intiface_engine/frontend/
process_messages.rs

1// Buttplug Rust Source Code File - See https://buttplug.io for more info.
2//
3// Copyright 2016-2026 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 buttplug_server_device_config::UserDeviceIdentifier;
9use serde::{Deserialize, Serialize};
10
11// Everything in this struct is an object, even if it has null contents. This is to make other
12// languages happy when trying to recompose JSON into objects.
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub enum EngineMessage {
15  EngineVersion {
16    version: String,
17  },
18  EngineStarted {},
19  EngineError {
20    error: String,
21  },
22  EngineServerCreated {},
23  EngineStopped {},
24  ClientConnected {
25    client_name: String,
26  },
27  ClientDisconnected {},
28  DeviceConnected {
29    name: String,
30    index: u32,
31    identifier: UserDeviceIdentifier,
32    #[serde(skip_serializing_if = "Option::is_none")]
33    display_name: Option<String>,
34    needs_keepalive: bool,
35  },
36  DeviceDisconnected {
37    index: u32,
38  },
39  ClientRejected {
40    reason: String,
41  },
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
45pub enum IntifaceMessage {
46  RequestEngineVersion { expected_version: u32 },
47  Stop {},
48}