scripting_tool.rs

 1mod scripting_session;
 2
 3pub use scripting_session::*;
 4
 5use schemars::JsonSchema;
 6use serde::Deserialize;
 7
 8#[derive(Debug, Deserialize, JsonSchema)]
 9pub struct ScriptingToolInput {
10    pub lua_script: String,
11}
12
13pub struct ScriptingTool;
14
15impl ScriptingTool {
16    pub const NAME: &str = "lua-interpreter";
17
18    pub const DESCRIPTION: &str = include_str!("scripting_tool_description.md");
19
20    pub fn input_schema() -> serde_json::Value {
21        let schema = schemars::schema_for!(ScriptingToolInput);
22        serde_json::to_value(&schema).unwrap()
23    }
24
25    pub fn deserialize_input(
26        input: serde_json::Value,
27    ) -> Result<ScriptingToolInput, serde_json::Error> {
28        serde_json::from_value(input)
29    }
30}