pub mod loader;
pub mod manifest;
pub mod registry;
pub use loader::{DiscoveryResult, LoadedPlugin, PluginLoader};
pub use manifest::{
Author, Compatibility, ManifestError, PluginManifest, RecipeEntry, ValidationError,
};
pub use registry::{
CompatibilityIssue, Conflict, Diagnostics, DiscoveryReport, DiscoveryStatus, PluginEntry,
PluginRegistry, RegistryError, RegistrySummary,
};
use std::path::Path;
pub fn init() -> PluginRegistry {
PluginRegistry::new()
}
pub fn discover_plugins(project_root: &Path) -> PluginRegistry {
let mut registry = PluginRegistry::new();
registry.discover(project_root);
registry
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_init() {
let registry = init();
let summary = registry.summary();
assert_eq!(summary.total_plugins, 0);
}
#[test]
fn test_discover_plugins() {
let registry = discover_plugins(Path::new("/tmp"));
assert!(registry.list_plugins().is_empty() || !registry.list_plugins().is_empty());
}
}