Skip to main content

a3s_code_core/research/
error.rs

1use thiserror::Error;
2
3/// Validation failures for native scientific research contracts.
4#[derive(Clone, Debug, Eq, Error, PartialEq)]
5pub enum ResearchContractError {
6    #[error("research contract schema is unsupported")]
7    UnsupportedSchema,
8    #[error("research contract field `{0}` is invalid")]
9    InvalidField(&'static str),
10    #[error("research contract field `{0}` is not a canonical SHA-256 digest")]
11    InvalidDigest(&'static str),
12    #[error("research contract digest for `{0}` does not match its contents")]
13    DigestMismatch(&'static str),
14    #[error("research contract wire value exceeds its bounded encoding")]
15    Encoding,
16    #[error("research contract transition from `{from}` to `{to}` is invalid")]
17    InvalidTransition {
18        from: &'static str,
19        to: &'static str,
20    },
21    #[error("research contract serialization failed: {0}")]
22    Serialization(String),
23}