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