spring_ai_rs/ai_interface/callback/command/command_data/
other.rs

1use std::ffi::CString;
2
3use spring_ai_sys::{SPauseCommand, SSetLastPosMessageCommand};
4
5use crate::ai_interface::callback::command::command_data::{CData, CommandData};
6
7// Set Last Message Position data
8pub struct SetLastPosMessageCommandData {
9    pub position: [f32; 3],
10}
11
12impl CommandData for SetLastPosMessageCommandData {
13    type CDataType = SSetLastPosMessageCommand;
14
15    fn c_data(&mut self) -> Self::CDataType {
16        SSetLastPosMessageCommand {
17            pos_posF3: self.position.as_mut_ptr(),
18        }
19    }
20}
21
22impl CData for SSetLastPosMessageCommand {}
23
24// Pause data
25pub struct PauseCommandData {
26    pub enable: bool,
27    pub reason: CString,
28}
29
30impl CommandData for PauseCommandData {
31    type CDataType = SPauseCommand;
32
33    fn c_data(&mut self) -> Self::CDataType {
34        SPauseCommand {
35            enable: self.enable,
36            reason: self.reason.as_ptr(),
37        }
38    }
39}
40
41impl CData for SPauseCommand {}