1
2
3
4
5
6
7
8
use async_trait::async_trait;

#[async_trait]
pub trait Preparer<I> {
    type Ok;
    type Error;
    async fn preparer(&mut self, input: I) -> Result<Self::Ok, Self::Error>;
}