use crate::profile_result::*;

pub trait TracingBackend {
    fn begin_session(&mut self, name: &str, filepath: &str);
    fn begin_session_limited(
        &mut self,
        name: &str,
        filepath: &str,
        max_frames: Option<usize>,
        max_duration_ms: Option<u64>,
    );
    fn end_session(&mut self) -> Result<(), String>;
    fn new_frame(&mut self);
    fn record_event(&mut self, event: &ProfileResult);
    fn record_span(&mut self, name: &str);
}
