use super::base36::DecodeError;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum SidError {
#[error("contributor id {0} exceeds maximum 998")]
ContributorIdTooLarge(u16),
#[error("space has reached maximum contributors (999)")]
MaxContributorsReached,
#[error("invalid sid format: {0}")]
InvalidFormat(String),
#[error("base36 decode error: {0}")]
DecodeError(#[from] DecodeError),
#[error("global id overflow: value {0} exceeds 6-char capacity")]
GlobalIdOverflow(u64),
#[error("contributor {0} not registered - call register_contributor first")]
ContributorNotRegistered(u16),
#[error("invalid counter file for contributor {0}")]
InvalidCounterFile(u16),
#[error("invalid config file: {0}")]
InvalidConfigFile(String),
#[error("invalid name format: {0}")]
InvalidName(String),
#[error("io error: {0}")]
IoError(#[from] std::io::Error),
#[error("serialization error: {0}")]
SerializationError(String),
#[error("object not found: {0}")]
NotFound(String),
#[error("storage error: {0}")]
StorageError(String),
}
pub type Result<T> = std::result::Result<T, SidError>;