use crate::bus::StreamEvent;
use crate::{MediaFrame, StreamKey};
pub trait Observer: Send + Sync + 'static {
fn on_event(&self, _event: &StreamEvent) {}
fn on_publish_started(&self, _app: &str) {}
fn on_publish_ended(&self, _app: &str) {}
fn on_frame(&self, _key: &StreamKey, _frame: &MediaFrame) {}
fn on_subscriber_lagged(&self, _key: &StreamKey, _skipped: u64) {}
fn on_subscriber_evicted(&self, _key: &StreamKey) {}
fn on_rate_limited(&self, _key: &StreamKey) {}
fn on_stream_reaped(&self, _key: &StreamKey) {}
}
#[derive(Debug, Default, Clone, Copy)]
pub struct NoopObserver;
impl Observer for NoopObserver {}