Skip to main content

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}