Mountain/RPC/CocoonService/Terminal/
AcceptTerminalProcessData.rs1
2use serde_json::json;
6use tauri::Emitter;
7use tonic::{Response, Status};
8
9use crate::{
10 RPC::CocoonService::CocoonServiceImpl,
11 Vine::Generated::{Empty, TerminalDataNotification},
12 dev_log,
13};
14
15pub async fn Fn(Service:&CocoonServiceImpl, Request:TerminalDataNotification) -> Result<Response<Empty>, Status> {
16 dev_log!(
17 "cocoon",
18 "[CocoonService] Terminal data for {}: {} bytes",
19 Request.terminal_id,
20 Request.data.len()
21 );
22
23 let DataString = String::from_utf8_lossy(&Request.data).to_string();
24
25 let _ = Service
26 .environment
27 .ApplicationHandle
28 .emit("sky://terminal/data", json!({ "id": Request.terminal_id, "data": DataString }));
29
30 Ok(Response::new(Empty {}))
31}