use super::{PassDesc, PassFailure, Pipeline};
pub mod fusion;
pub mod remarks;
pub mod timing;
#[derive(Debug, Clone, Copy)]
pub struct PassEvent<'a> {
pub pipeline: &'a Pipeline,
pub pass: &'a PassDesc,
pub index: usize,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Remark<'a> {
pub id: &'a str,
pub message: &'a str,
}
pub trait PassObserver {
fn before_pipeline(&mut self, _pipeline: &Pipeline) {}
fn after_pipeline(&mut self, _pipeline: &Pipeline) {}
fn before_pass(&mut self, _event: &PassEvent<'_>) {}
fn after_pass(&mut self, _event: &PassEvent<'_>) {}
fn on_fail(&mut self, _event: &PassEvent<'_>, _failure: &PassFailure) {}
fn on_remark(&mut self, _event: &PassEvent<'_>, _remark: &Remark<'_>) {}
}
#[derive(Debug, Clone, Copy, Default)]
pub struct NoObserver;
impl PassObserver for NoObserver {}