use crate::error::PluginError;
use crate::meta::{PluginCapabilities, PluginMeta};
use crate::result::PluginResult;
pub type PluginInput = serde_json::Value;
pub trait DppSectorPlugin: Send + Sync {
fn meta(&self) -> PluginMeta;
fn capabilities(&self) -> PluginCapabilities;
fn validate_input(&self, input: &PluginInput) -> Result<(), PluginError>;
fn calculate_metrics(&self, input: &PluginInput) -> Result<PluginResult, PluginError>;
fn generate_passport(&self, input: &PluginInput) -> Result<serde_json::Value, PluginError>;
}