-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathdeveloper_control.rs
More file actions
64 lines (57 loc) · 1.38 KB
/
Copy pathdeveloper_control.rs
File metadata and controls
64 lines (57 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
use std::sync::mpsc::SyncSender;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "kebab-case")]
pub enum DeveloperHudState {
Reset,
Recording,
Transcribing,
Processing,
}
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "kebab-case")]
pub enum DeveloperPane {
Settings,
Modes,
VoiceAction,
Replacements,
History,
HudLab,
Commands,
Meetings,
Activity,
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(tag = "command", rename_all = "kebab-case")]
pub enum DeveloperCommand {
Status,
Hud { state: DeveloperHudState },
ShowPane { pane: DeveloperPane },
SetCommandsEnabled { enabled: bool },
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(tag = "status", rename_all = "kebab-case")]
pub enum DeveloperReply {
Ok,
State {
window_open: bool,
pane: Option<DeveloperPane>,
commands_enabled: bool,
},
Error {
code: String,
message: String,
},
}
pub struct DeveloperCall {
pub command: DeveloperCommand,
pub reply: SyncSender<DeveloperReply>,
}
impl DeveloperReply {
pub fn error(code: impl Into<String>, message: impl Into<String>) -> Self {
Self::Error {
code: code.into(),
message: message.into(),
}
}
}