init-data-rust 0.1.1

This library is a Rust port of init-data-golang
Documentation
use std::time::SystemTimeError;
use thiserror::Error;

#[derive(Debug, Error)]
pub enum ParseDataError {
    #[error("Invalid signature: {0}")]
    InvalidSignature(#[from] serde_json::Error),

    #[error("Invalid query string: {0}")]
    InvalidQueryString(#[from] url::ParseError),
}

#[derive(Debug, Error)]
pub enum SignError {
    #[error("Could not process signature")]
    CouldNotProcessSignature,

    #[error("Could not process auth time: {0}")]
    CouldNotProcessAuthTime(#[from] SystemTimeError),
}

#[derive(Debug, Error)]
pub enum ValidationError {
    #[error("Invalid query string: {0}")]
    InvalidQueryString(#[from] url::ParseError),

    #[error("Unexpected format")]
    UnexpectedFormat,

    #[error("Signature is missing")]
    SignMissing,

    #[error("Auth date is missing")]
    AuthDateMissing,

    #[error("Data has expired")]
    Expired,

    #[error("Signature is invalid")]
    SignInvalid,
}