use std::pin::Pin;
use crate::prelude::*;
use http_body_util::Full;
use hyper::Response;
use hyper::body::Bytes;
mod record;
pub use record::*;
mod file;
pub use file::*;
pub trait RecordReplayStore {
fn handle(
&mut self,
payload: ProxyHandlerPayload<'_>,
) -> Result<Option<Response<Full<Bytes>>>, CinemaError>;
fn record(&mut self, payload: RecordReplayRecord) -> Result<(), CinemaError>;
fn commit<'a>(&'a self) -> Pin<Box<dyn Future<Output = Result<(), CinemaError>> + Send + 'a>>;
}