use futures::{future::BoxFuture, FutureExt};
use crate::core::logs::LogFrame;
pub mod logging_consumer;
pub trait LogConsumer: Send + Sync {
fn accept<'a>(&'a self, record: &'a LogFrame) -> BoxFuture<'a, ()>;
}
impl<F> LogConsumer for F
where
F: Fn(&LogFrame) + Send + Sync,
{
fn accept<'a>(&'a self, record: &'a LogFrame) -> BoxFuture<'a, ()> {
async move {
self(record);
}
.boxed()
}
}