use async_trait::async_trait;
use crate::api::{AttrKey, AttrVal};
use std::collections::BTreeMap;
#[async_trait]
pub trait MutatorActuator {
async fn inject(
&mut self,
mutation_id: uuid::Uuid,
params: BTreeMap<AttrKey, AttrVal>,
) -> Result<(), Box<dyn std::error::Error + Send + Sync>>;
async fn reset(&mut self) -> Result<(), Box<dyn std::error::Error + Send + Sync>>;
}
pub trait SyncMutatorActuator {
fn inject(
&mut self,
mutation_id: uuid::Uuid,
params: BTreeMap<AttrKey, AttrVal>,
) -> Result<(), Box<dyn std::error::Error>>;
fn reset(&mut self) -> Result<(), Box<dyn std::error::Error>>;
}