Mountain/Binary/Extension/ExtensionPopulate.rs
1//! # Extension Populate Module
2//!
3//! Scans and populates extensions from configured scan paths.
4
5use crate::{ApplicationState::State::ApplicationState::ApplicationState, dev_log};
6
7/// Scans and populates extensions from the configured scan paths.
8///
9/// # Arguments
10///
11/// * `ApplicationHandle` - The Tauri application handle
12/// * `AppState` - The application state containing extension information
13///
14/// # Returns
15///
16/// A `Result` indicating success or failure.
17///
18/// # Extension Scanning Process
19///
20/// This function performs:
21/// - Scanning all configured extension directories
22/// - Parsing extension metadata and manifests
23/// - Loading extension capabilities
24/// - Registering extensions with the application
25///
26/// # Errors
27///
28/// Returns an error if extension scanning or population fails.
29pub async fn Fn(ApplicationHandle:tauri::AppHandle, AppState:&std::sync::Arc<ApplicationState>) -> Result<(), String> {
30 match crate::ApplicationState::Internal::ExtensionScanner::ScanAndPopulateExtensions::Fn(
31 ApplicationHandle.clone(),
32 &AppState.Extension,
33 )
34 .await
35 {
36 Ok(()) => {
37 dev_log!(
38 "extensions",
39 "[Extensions] [Populate] Extensions scanned and populated successfully."
40 );
41
42 Ok(())
43 },
44
45 Err(e) => {
46 dev_log!("extensions", "error: [Extensions] [Populate] Failed: {}", e);
47
48 Err(format!("Failed to scan and populate extensions: {}", e))
49 },
50 }
51}