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

1use std::ffi::CString;
2
3use spring_ai_sys::{SCallLuaRulesCommand, SCallLuaUICommand};
4
5use crate::ai_interface::callback::command::command_data::{CData, CommandData};
6
7// Call Lua Rules data
8pub struct CallLuaRulesCommandData {
9    pub in_data: CString,
10    pub in_size: i32,
11    pub out_data: CString,
12}
13
14impl CommandData for CallLuaRulesCommandData {
15    type CDataType = SCallLuaRulesCommand;
16
17    fn c_data(&mut self) -> Self::CDataType {
18        SCallLuaRulesCommand {
19            inData: self.in_data.as_ptr(),
20            inSize: self.in_size,
21            ret_outData: self.out_data.clone().into_raw(),
22        }
23    }
24}
25
26impl CData for SCallLuaRulesCommand {}
27
28// Call Lua UI data
29pub struct CallLuaUICommandData {
30    pub in_data: CString,
31    pub in_size: i32,
32    pub out_data: CString,
33}
34
35impl CommandData for CallLuaUICommandData {
36    type CDataType = SCallLuaUICommand;
37
38    fn c_data(&mut self) -> Self::CDataType {
39        SCallLuaUICommand {
40            inData: self.in_data.as_ptr(),
41            inSize: self.in_size,
42            ret_outData: self.out_data.clone().into_raw(),
43        }
44    }
45}
46
47impl CData for SCallLuaUICommand {}