Mountain/Vine/Client/DisconnectFromSideCar.rs
1#![allow(non_snake_case)]
2
3//! Disconnect from a sidecar process. Removes the entry from both the
4//! connection pool and the metadata tracker.
5
6use crate::{
7 Vine::{
8 Client::Shared::{CONNECTION_METADATA, SIDECAR_CLIENTS},
9 Error::VineError,
10 },
11 dev_log,
12};
13
14pub fn Fn(SideCarIdentifier:String) -> Result<(), VineError> {
15 let mut Pool = SIDECAR_CLIENTS.lock();
16
17 if Pool.remove(&SideCarIdentifier).is_some() {
18 CONNECTION_METADATA.lock().remove(&SideCarIdentifier);
19
20 dev_log!("grpc", "[VineClient] Disconnected from sidecar '{}'", SideCarIdentifier);
21
22 Ok(())
23 } else {
24 Err(VineError::ClientNotConnected(SideCarIdentifier))
25 }
26}