Skip to main content

DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/IPC/AdvancedFeatures/
InitializeAdvancedFeatures.rs

1//! Bootstrap helper - construct `Features::Struct`, stash a
2//! clone in Tauri state, spawn the monitor tasks. Called from
3//! `Binary/Register/AdvancedFeaturesRegister.rs`.
4
5use std::sync::Arc;
6
7use tauri::Manager;
8
9use crate::{
10	IPC::AdvancedFeatures::Features::Struct as Features,
11	RunTime::ApplicationRunTime::ApplicationRunTime,
12	dev_log,
13};
14
15pub fn initialize_advanced_features(
16	app_handle:&tauri::AppHandle,
17
18	runtime:Arc<ApplicationRunTime>,
19) -> Result<(), String> {
20	dev_log!("lifecycle", "Initializing advanced IPC features");
21
22	let features = Features::new(runtime);
23
24	app_handle.manage(features.clone());
25
26	let features_clone = features.clone();
27
28	tokio::spawn(async move {
29		if let Err(e) = features_clone.start_monitoring().await {
30			dev_log!("ipc", "error: [AdvancedFeatures] Failed to start monitoring: {}", e);
31		}
32	});
33
34	Ok(())
35}