Mountain/RPC/CocoonService/Terminal/
CloseTerminal.rs1#![allow(non_snake_case)]
2
3use tonic::{Response, Status};
6use CommonLibrary::Terminal::TerminalProvider::TerminalProvider;
7
8use crate::{
9 RPC::CocoonService::CocoonServiceImpl,
10 Vine::Generated::{CloseTerminalRequest, Empty},
11 dev_log,
12};
13
14pub async fn Fn(Service:&CocoonServiceImpl, Request:CloseTerminalRequest) -> Result<Response<Empty>, Status> {
15 let TerminalIdentifier = Request.terminal_id as u64;
16
17 dev_log!("cocoon", "[CocoonService] close_terminal: id={}", TerminalIdentifier);
18
19 match Service.environment.DisposeTerminal(TerminalIdentifier).await {
20 Ok(()) => Ok(Response::new(Empty {})),
21
22 Err(Error) => {
23 dev_log!(
24 "cocoon",
25 "warn: [CocoonService] close_terminal failed id={}: {}",
26 TerminalIdentifier,
27 Error
28 );
29
30 Err(Status::internal(format!("close_terminal: {}", Error)))
31 },
32 }
33}