solti_model/error.rs
1//! # Model errors.
2
3use std::borrow::Cow;
4
5use thiserror::Error;
6
7#[derive(Debug, Error)]
8#[non_exhaustive]
9pub enum ModelError {
10 /// Parsing an unrecognized admission-policy name (`AdmissionPolicy` `FromStr`).
11 #[error("unknown admission policy: {0}")]
12 UnknownAdmission(String),
13
14 /// Parsing an unrecognized restart-policy name (`RestartPolicy` `FromStr`).
15 #[error("unknown restart policy: {0}")]
16 UnknownRestart(String),
17
18 /// Parsing an unrecognized jitter-policy name (`JitterPolicy` `FromStr`).
19 #[error("unknown jitter policy: {0}")]
20 UnknownJitter(String),
21
22 /// Parsing an unrecognized phase name (`TaskPhase` `FromStr`).
23 #[error("unknown task phase: {0}")]
24 UnknownTaskPhase(String),
25
26 /// A structural or business-rule validation failure (empty slot, zero timeout, bad backoff, `Embedded` kind at the submit boundary, malformed identity, …).
27 #[error("invalid model: {0}")]
28 Invalid(Cow<'static, str>),
29}
30
31pub type ModelResult<T> = Result<T, ModelError>;