Mountain/IPC/WindServiceHandler/
Output.rs1#![allow(non_snake_case)]
2
3use serde_json::{Value, json};
6use tauri::AppHandle;
7
8use crate::dev_log;
9
10pub async fn handle_output_create(_AppHandle:AppHandle, Args:Vec<Value>) -> Result<Value, String> {
12 let ChannelName = Args.first().and_then(|V| V.as_str()).unwrap_or("Output").to_string();
13 dev_log!("ipc", "output:create channel='{}'", ChannelName);
14 Ok(json!({ "channelName": ChannelName }))
15}
16
17pub async fn handle_output_append(AppHandle:AppHandle, Args:Vec<Value>) -> Result<Value, String> {
19 use tauri::Emitter;
20
21 let ChannelName = Args.first().and_then(|V| V.as_str()).unwrap_or("").to_string();
22 let Text = Args.get(1).and_then(|V| V.as_str()).unwrap_or("").to_string();
23
24 let _ = AppHandle.emit("sky://output/append", json!({ "channel": ChannelName, "text": Text }));
25 Ok(Value::Null)
26}
27
28pub async fn handle_output_append_line(AppHandle:AppHandle, Args:Vec<Value>) -> Result<Value, String> {
30 use tauri::Emitter;
31
32 let ChannelName = Args.first().and_then(|V| V.as_str()).unwrap_or("").to_string();
33 let Text = Args.get(1).and_then(|V| V.as_str()).unwrap_or("").to_string();
34 let Line = format!("{}\n", Text);
35
36 let _ = AppHandle.emit("sky://output/append", json!({ "channel": ChannelName, "text": Line }));
37 Ok(Value::Null)
38}
39
40pub async fn handle_output_clear(AppHandle:AppHandle, Args:Vec<Value>) -> Result<Value, String> {
42 use tauri::Emitter;
43
44 let ChannelName = Args.first().and_then(|V| V.as_str()).unwrap_or("").to_string();
45 let _ = AppHandle.emit("sky://output/clear", json!({ "channel": ChannelName }));
46 Ok(Value::Null)
47}
48
49pub async fn handle_output_show(AppHandle:AppHandle, Args:Vec<Value>) -> Result<Value, String> {
51 use tauri::Emitter;
52
53 let ChannelName = Args.first().and_then(|V| V.as_str()).unwrap_or("").to_string();
54 let _ = AppHandle.emit("sky://output/show", json!({ "channel": ChannelName }));
55 Ok(Value::Null)
56}