DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/RPC/CocoonService/Initialization/
CancelOperation.rs1use tonic::{Response, Status};
5
6use crate::{
7 RPC::CocoonService::CocoonServiceImpl,
8 Vine::Generated::{CancelOperationRequest, Empty},
9 dev_log,
10};
11
12pub async fn Fn(Service:&CocoonServiceImpl, Request:CancelOperationRequest) -> Result<Response<Empty>, Status> {
13 dev_log!(
14 "cocoon",
15 "[CocoonService] Cancel operation request: {}",
16 Request.request_identifier_to_cancel
17 );
18
19 if let Some(Token) = Service.ActiveOperations.read().await.get(&Request.request_identifier_to_cancel) {
20 dev_log!(
21 "cocoon",
22 "[CocoonService] Triggering cancellation token for operation {}",
23 Request.request_identifier_to_cancel
24 );
25
26 Token.cancel();
27 } else {
28 dev_log!(
29 "cocoon",
30 "warn: [CocoonService] No active operation found for cancellation: {}",
31 Request.request_identifier_to_cancel
32 );
33 }
34
35 Ok(Response::new(Empty {}))
36}