heeranjid-sqlx 0.3.3

SQLx integration for HeeRanjID distributed ID generation
Documentation
use thiserror::Error;

#[derive(Debug, Error)]
pub enum GenerateError {
    #[error("database returned invalid HeerId: {0}")]
    InvalidHeerId(#[source] heeranjid::Error),
    #[error("database returned invalid RanjId: {0}")]
    InvalidRanjId(#[source] heeranjid::Error),
    #[error("logical future drift (batch-induced): {message}")]
    LogicalDrift { message: String },
    #[error("clock rollback: {message}")]
    ClockRollback { message: String },
    #[error("hard clock rollback: {message}")]
    HardClockRollback { message: String },
    #[error("database error: {0}")]
    Database(#[from] sqlx::Error),
}

#[derive(Debug, Error)]
pub enum StartupError {
    #[error("node {0} is not registered or not active")]
    NodeNotActive(u16),
    #[error("heer_config epoch is not configured")]
    MissingEpoch,
    #[error("database error: {0}")]
    Database(#[from] sqlx::Error),
}