spring_ai_rs/ai_interface/callback/command/
options.rs

1use spring_ai_sys::{
2    UnitCommandOptions as UnitCommandOptions_Sys, UnitCommandOptions_UNIT_COMMAND_OPTION_ALT_KEY,
3    UnitCommandOptions_UNIT_COMMAND_OPTION_CONTROL_KEY,
4    UnitCommandOptions_UNIT_COMMAND_OPTION_INTERNAL_ORDER,
5    UnitCommandOptions_UNIT_COMMAND_OPTION_RIGHT_MOUSE_KEY,
6    UnitCommandOptions_UNIT_COMMAND_OPTION_SHIFT_KEY,
7};
8
9#[derive(Copy, Clone, Debug)]
10pub enum UnitCommandOptions {
11    AltKey,
12    ControlKey,
13    ShiftKey,
14    InternalOrder,
15    RightMouseKey,
16}
17
18#[allow(non_upper_case_globals)]
19impl From<UnitCommandOptions_Sys> for UnitCommandOptions {
20    fn from(command_topic_sys: UnitCommandOptions_Sys) -> Self {
21        match command_topic_sys {
22            UnitCommandOptions_UNIT_COMMAND_OPTION_ALT_KEY => UnitCommandOptions::AltKey,
23            UnitCommandOptions_UNIT_COMMAND_OPTION_CONTROL_KEY => UnitCommandOptions::ControlKey,
24            UnitCommandOptions_UNIT_COMMAND_OPTION_SHIFT_KEY => UnitCommandOptions::ShiftKey,
25            UnitCommandOptions_UNIT_COMMAND_OPTION_INTERNAL_ORDER => {
26                UnitCommandOptions::InternalOrder
27            }
28            UnitCommandOptions_UNIT_COMMAND_OPTION_RIGHT_MOUSE_KEY => {
29                UnitCommandOptions::RightMouseKey
30            }
31            _ => unimplemented!(),
32        }
33    }
34}
35
36#[allow(non_upper_case_globals)]
37impl From<UnitCommandOptions> for UnitCommandOptions_Sys {
38    fn from(command_topic_sys: UnitCommandOptions) -> Self {
39        match command_topic_sys {
40            UnitCommandOptions::AltKey => UnitCommandOptions_UNIT_COMMAND_OPTION_ALT_KEY,
41            UnitCommandOptions::ControlKey => UnitCommandOptions_UNIT_COMMAND_OPTION_CONTROL_KEY,
42            UnitCommandOptions::ShiftKey => UnitCommandOptions_UNIT_COMMAND_OPTION_SHIFT_KEY,
43            UnitCommandOptions::InternalOrder => {
44                UnitCommandOptions_UNIT_COMMAND_OPTION_INTERNAL_ORDER
45            }
46            UnitCommandOptions::RightMouseKey => {
47                UnitCommandOptions_UNIT_COMMAND_OPTION_RIGHT_MOUSE_KEY
48            }
49        }
50    }
51}