Skip to main content

turbo_quant/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum TurboQuantError {
5    #[error("dimension mismatch: expected {expected}, got {got}")]
6    DimensionMismatch { expected: usize, got: usize },
7
8    #[error("dimension must be even for polar encoding, got {got}")]
9    OddDimension { got: usize },
10
11    #[error("dimension must be non-zero")]
12    ZeroDimension,
13
14    #[error("bits must be between 1 and 16, got {got}")]
15    InvalidBitWidth { got: u8 },
16
17    #[error("projection count must be non-zero")]
18    ZeroProjectionCount,
19
20    #[error("rotation matrix generation failed: {reason}")]
21    RotationFailed { reason: String },
22
23    #[error("polar code is malformed: {reason}")]
24    MalformedCode { reason: String },
25}
26
27pub type Result<T> = std::result::Result<T, TurboQuantError>;