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 if Handle == 0 {
14 dev_log!("provider-register", "[ProviderUnregister] debug_adapter skip: missing handle");
15 return;
16 }
17 Service
18 .RunTime()
19 .Environment
20 .ApplicationState
21 .Extension
22 .ProviderRegistration
23 .UnregisterProvider(Handle);
24 dev_log!("provider-register", "[ProviderUnregister] debug_adapter handle={}", Handle);
25}