hullabaloo 0.1.0

Backend-agnostic geometry construction utilities.
Documentation
use thiserror::Error;

#[derive(Debug, Error)]
pub enum HullabalooError {
    #[error("invalid input: {message}")]
    InvalidInput { message: String },
    #[error("invalid structure: {message}")]
    InvalidStructure { message: String },
    #[error(
        "matroid ground set too large for characteristic polynomial via current algorithm (n={num_elements})"
    )]
    MatroidTooLarge { num_elements: usize },
    #[error(
        "subset rank exceeds total rank in characteristic polynomial \
         (subset_rank={subset_rank}, total_rank={total_rank})"
    )]
    MatroidRankInconsistent {
        subset_rank: usize,
        total_rank: usize,
    },
    #[error("non-finite value: {value} ({context})")]
    NonFinite { value: f64, context: &'static str },

    #[error(transparent)]
    Core(#[from] crate::types::Error),
}

pub type HullabalooResult<T> = std::result::Result<T, HullabalooError>;