Mountain/Environment/StatusBarProvider/
Tooltip.rs1use std::sync::Arc;
7
8use CommonLibrary::{
9 Environment::Requires::Requires,
10 Error::CommonError::CommonError,
11 IPC::{DTO::ProxyTarget::ProxyTarget, IPCProvider::IPCProvider},
12};
13use serde_json::{Value, json};
14
15use super::super::MountainEnvironment::MountainEnvironment;
16use crate::dev_log;
17
18pub(super) async fn provide_tooltip_impl(
20 env:&MountainEnvironment,
21 entry_identifier:String,
22) -> Result<Option<Value>, CommonError> {
23 dev_log!(
24 "lifecycle",
25 "[StatusBarProvider] Providing dynamic tooltip for entry: {}",
26 entry_identifier
27 );
28
29 let ipc_provider:Arc<dyn IPCProvider> = env.Require();
30
31 let rpc_method = format!("{}$ProvideStatusbarTooltip", ProxyTarget::ExtHostStatusBar.GetTargetPrefix());
33
34 let rpc_response = ipc_provider
35 .SendRequestToSideCar("cocoon-main".to_string(), rpc_method, json!([entry_identifier]), 5000)
36 .await?;
37
38 Ok(serde_json::from_value(rpc_response).unwrap_or(None))
40}