1use thiserror::Error;
2
3#[derive(Debug, Error)]
4#[non_exhaustive]
5pub enum LeError {
6 #[error("R1CS or witness input exceeds allowed size")]
7 OversizedInput,
8 #[error("shortness / rejection sampling bound violated")]
9 RejectedSample,
10 #[allow(dead_code)]
12 #[error("ring multiplication failed")]
13 RingMul,
14 #[error("prover rejected too many times (Lyubashevsky aborts)")]
15 ProverAborted,
16 #[error("verifier rejected proof: infinity norm exceeded bound")]
17 InvalidNorm,
18 #[error("verifier rejected proof: transcript domain/challenge mismatch")]
19 DomainMismatch,
20}