mod profiler;
mod score;
#[cfg(test)]
mod tests;
mod types;
mod widget;
use std::any::Any;
pub use profiler::BrickProfiler;
pub use score::{BrickGrade, BrickScore, Scorable};
pub use types::{
fnv1a_f32, BrickAssertion, BrickBudget, BrickVerification, DivergenceReport, KernelTrace,
};
pub use widget::{Canvas, Color, Constraints, Point, Rect, Size, TextStyle, Widget};
pub trait Brick: Send + Sync {
fn brick_name(&self) -> &'static str;
fn assertions(&self) -> Vec<BrickAssertion>;
fn budget(&self) -> BrickBudget;
fn verify(&self) -> BrickVerification;
fn test_id(&self) -> Option<&str> {
None
}
fn can_render(&self) -> bool {
self.verify().is_valid()
}
fn as_any(&self) -> &dyn Any;
}