axiolid_profile/validate.rs
1//! Profile validation and algorithm extension points.
2
3use axiolid_core::Tolerance;
4
5/// Validate a profile without mutating it.
6pub trait ValidateProfile<P> {
7 /// Structured validation report.
8 type Report: core::fmt::Debug;
9
10 /// Diagnose closure, dimensions, self-intersection, and nesting.
11 fn validate(&self, profile: &P, tolerance: Tolerance) -> Self::Report;
12}