Mountain/Vine/Server/Notification/UnregisterDebugAdapter.rs
1#![allow(non_snake_case)]
2//! Cocoon → Mountain `unregister_debug_adapter` notification.
3//! Emitted by `Cocoon/.../DebugNamespace.ts:38` when an extension disposes
4//! a debug adapter descriptor factory. Mirrors
5//! `UnregisterAuthenticationProvider` but for the DebugAdapter slot.
6
7use serde_json::Value;
8
9use crate::{Vine::Server::MountainVinegRPCService::MountainVinegRPCService, dev_log};
10
11pub async fn UnregisterDebugAdapter(Service:&MountainVinegRPCService, Parameter:&Value) {
12 let Handle = Parameter.get("handle").and_then(Value::as_u64).unwrap_or(0) as u32;
13
14 if Handle == 0 {
15 dev_log!("provider-register", "[ProviderUnregister] debug_adapter skip: missing handle");
16
17 return;
18 }
19
20 Service
21 .RunTime()
22 .Environment
23 .ApplicationState
24 .Extension
25 .ProviderRegistration
26 .UnregisterProvider(Handle);
27
28 dev_log!("provider-register", "[ProviderUnregister] debug_adapter handle={}", Handle);
29}