1use 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}