Skip to main content

systemprompt_loader/extension_loader/
result.rs

1//! Aggregated extension validation results.
2//!
3//! Copyright (c) systemprompt.io — Business Source License 1.1.
4//! See <https://systemprompt.io> for licensing details.
5
6use systemprompt_models::DiscoveredExtension;
7
8#[derive(Debug)]
9pub struct ExtensionValidationResult {
10    pub discovered: Vec<DiscoveredExtension>,
11    pub missing_binaries: Vec<(String, std::path::PathBuf)>,
12    pub missing_manifests: Vec<std::path::PathBuf>,
13}
14
15impl ExtensionValidationResult {
16    #[must_use]
17    pub const fn is_valid(&self) -> bool {
18        self.missing_binaries.is_empty()
19    }
20
21    #[must_use]
22    pub fn format_missing_binaries(&self) -> String {
23        self.missing_binaries
24            .iter()
25            .map(|(binary, path)| format!("  ✗ {} ({})", binary, path.display()))
26            .collect::<Vec<_>>()
27            .join("\n")
28    }
29}