1use thiserror::Error;
4
5pub type ShellResult<T> = Result<T, ShellError>;
7
8#[derive(Debug, Error)]
10pub enum ShellError {
11 #[error("input mesh is empty")]
13 EmptyMesh,
14
15 #[error("SDF grid too large: {dims:?} = {total} voxels exceeds limit of {max}")]
17 GridTooLarge {
18 dims: [usize; 3],
19 total: usize,
20 max: usize,
21 },
22
23 #[error("isosurface extraction produced empty mesh")]
25 EmptyIsosurface,
26
27 #[error("failed to transfer vertex tags: {details}")]
29 TagTransferFailed { details: String },
30
31 #[error("shell generation failed: {details}")]
33 ShellGenerationFailed { details: String },
34}