use fidius_core::descriptor::BufferStrategyKind;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PluginRuntimeKind {
Cdylib,
Python,
Wasm,
}
#[derive(Debug, Clone)]
pub struct PluginInfo {
pub name: String,
pub interface_name: String,
pub interface_hash: u64,
pub interface_version: u32,
pub capabilities: u64,
pub buffer_strategy: BufferStrategyKind,
pub runtime: PluginRuntimeKind,
}
impl PluginInfo {
pub fn is_cdylib(&self) -> bool {
matches!(self.runtime, PluginRuntimeKind::Cdylib)
}
pub fn is_python(&self) -> bool {
matches!(self.runtime, PluginRuntimeKind::Python)
}
pub fn is_wasm(&self) -> bool {
matches!(self.runtime, PluginRuntimeKind::Wasm)
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum LoadPolicy {
#[default]
Strict,
Lenient,
}