wp-error 0.8.3

Structured, domain-specific error types and robustness strategies extracted from WarpParse
Documentation
use derive_more::From;
use orion_error::{ErrorCode, StructError, UvsReason};
use serde::Serialize;
use thiserror::Error;
#[derive(Error, Debug, Clone, PartialEq, Serialize, From)]
pub enum KnowledgeReason {
    #[error("not data")]
    NotData,
    #[error("{0}")]
    Uvs(UvsReason),
}

impl ErrorCode for KnowledgeReason {
    fn error_code(&self) -> i32 {
        crate::codes::SysErrorCode::sys_code(self) as i32
    }
}

pub type KnowledgeError = StructError<KnowledgeReason>;
pub type KnowledgeResult<T> = Result<T, StructError<KnowledgeReason>>;