use super::spec;
use std::sync::Arc;
mod fs;
pub use fs::{FileRecorder, HarFilePath};
use rama_core::extensions::Extensions;
use rama_utils::str::arcstr::ArcStr;
#[derive(Debug, Clone)]
pub struct LogMetaInfo {
pub version: ArcStr,
pub creator: spec::Creator,
pub browser: Option<spec::Browser>,
pub comment: Option<ArcStr>,
}
pub trait Recorder: Send + Sync + 'static {
fn record(&self, entry: spec::Log) -> impl Future<Output = Option<Extensions>> + Send + '_;
fn stop_record(&self) -> impl Future<Output = ()> + Send;
}
impl<R: Recorder> Recorder for Arc<R> {
fn record(&self, log: spec::Log) -> impl Future<Output = Option<Extensions>> + Send + '_ {
(**self).record(log)
}
fn stop_record(&self) -> impl Future<Output = ()> + Send {
(**self).stop_record()
}
}