Skip to main content

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>;