Skip to main content

Mountain/Environment/StatusBarProvider/
MessageManagement.rs

1//! # StatusBarProvider - Message Management
2//!
3//! Implementation of status bar temporary message handling for
4//! [`MountainEnvironment`]
5
6use CommonLibrary::{Error::CommonError::CommonError, IPC::SkyEvent::SkyEvent};
7use serde_json::{Value, json};
8use tauri::Emitter;
9
10use super::super::MountainEnvironment::MountainEnvironment;
11use crate::dev_log;
12
13/// Message management operations implementation for MountainEnvironment
14pub(super) async fn set_status_bar_message_impl(
15	env:&MountainEnvironment,
16
17	message_identifier:String,
18
19	text:String,
20) -> Result<(), CommonError> {
21	dev_log!(
22		"lifecycle",
23		"[StatusBarProvider] Setting status message '{}': {}",
24		message_identifier,
25		text
26	);
27
28	env.ApplicationHandle
29		.emit::<Value>(
30			SkyEvent::StatusBarSetMessage.AsStr(),
31			json!({ "id": message_identifier, "text": text }),
32		)
33		.map_err(|error| CommonError::UserInterfaceInteraction { Reason:error.to_string() })
34}
35
36/// Disposes of a temporary status bar message.
37pub(super) async fn dispose_status_bar_message_impl(
38	env:&MountainEnvironment,
39
40	message_identifier:String,
41) -> Result<(), CommonError> {
42	dev_log!(
43		"lifecycle",
44		"[StatusBarProvider] Disposing status message '{}'",
45		message_identifier
46	);
47
48	env.ApplicationHandle
49		.emit::<Value>(SkyEvent::StatusBarDisposeMessage.AsStr(), json!({ "id": message_identifier }))
50		.map_err(|error| CommonError::UserInterfaceInteraction { Reason:error.to_string() })
51}