a3s_code_core/research/
error.rs1use thiserror::Error;
2
3#[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}