semaphore/
error.rs

1//! Error Module
2
3use lean_imt::lean_imt::LeanIMTError;
4use thiserror::Error;
5
6#[derive(Error, Debug, PartialEq, Eq)]
7pub enum SemaphoreError {
8    #[error("Member already removed")]
9    AlreadyRemovedMember,
10    #[error("Member value is empty")]
11    EmptyLeaf,
12    #[error("Input array of size {0} exceeds maximum allowed length of 32 bytes")]
13    InputSizeExceeded(usize),
14    #[error("LeanIMT error: {0}")]
15    LeanIMTError(LeanIMTError),
16    #[error("Message of size {0} exceeds maximum allowed length of 32 bytes")]
17    MessageSizeExceeded(usize),
18    #[error("Public key validation failed: point is not on curve")]
19    PublicKeyNotOnCurve,
20    #[error("Member has been removed")]
21    RemovedMember,
22    #[error("Signature point R is not on curve")]
23    SignaturePointNotOnCurve,
24    #[error("Signature verification failed")]
25    SignatureVerificationFailed,
26    #[error("Serialization error: {0}")]
27    SerializationError(String),
28}
29
30impl From<LeanIMTError> for SemaphoreError {
31    fn from(error: LeanIMTError) -> Self {
32        SemaphoreError::LeanIMTError(error)
33    }
34}