pub struct LoadContext {
pub app_name: &'static str,
pub cwd_dir: std::path::PathBuf,
}
#[derive(Debug, Clone)]
pub enum ComponentSource {
Builtin,
Path(std::path::PathBuf),
}
#[derive(Debug, Clone)]
pub struct DiscoveryMeta {
pub loader_name: &'static str,
pub source: ComponentSource,
pub priority: i32,
}
use std::sync::Arc;
use puniyu_adapter_core::Adapter;
use puniyu_plugin_core::Plugin;
pub struct DiscoveredAdapter {
pub instance: Arc<dyn Adapter>,
pub meta: DiscoveryMeta,
}
pub struct DiscoveredPlugin {
pub instance: Arc<dyn Plugin>,
pub meta: DiscoveryMeta,
}
pub struct ComponentSet {
pub adapters: Vec<DiscoveredAdapter>,
pub plugins: Vec<DiscoveredPlugin>,
}