Skip to main content

brepkit_geometry/
error.rs

1//! Error types for brepkit-geometry.
2
3/// Errors produced by geometry algorithms.
4#[derive(Debug, thiserror::Error)]
5pub enum GeomError {
6    /// Propagated error from brepkit-math.
7    #[error(transparent)]
8    Math(#[from] brepkit_math::MathError),
9    /// Input geometry is degenerate (e.g. zero-length curve, collapsed surface).
10    #[error("degenerate input: {0}")]
11    DegenerateInput(String),
12    /// Iterative solver did not converge within the allotted iterations.
13    #[error("convergence failure after {iterations} iterations")]
14    ConvergenceFailure {
15        /// Number of iterations attempted before giving up.
16        iterations: usize,
17    },
18    /// A collection required to be non-empty was empty.
19    #[error("empty input")]
20    EmptyInput,
21}