intiface_engine/frontend/
process_messages.rs

1use buttplug::server::device::configuration::UserDeviceIdentifier;
2use serde::{Deserialize, Serialize};
3
4// Everything in this struct is an object, even if it has null contents. This is to make other
5// languages happy when trying to recompose JSON into objects.
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub enum EngineMessage {
8  EngineVersion {
9    version: String,
10  },
11  EngineStarted {},
12  EngineError {
13    error: String,
14  },
15  EngineServerCreated {},
16  EngineStopped {},
17  ClientConnected {
18    client_name: String,
19  },
20  ClientDisconnected {},
21  DeviceConnected {
22    name: String,
23    index: u32,
24    identifier: UserDeviceIdentifier,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    display_name: Option<String>,
27  },
28  DeviceDisconnected {
29    index: u32,
30  },
31  ClientRejected {
32    reason: String,
33  },
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
37pub enum IntifaceMessage {
38  RequestEngineVersion { expected_version: u32 },
39  Stop {},
40}