1use thiserror::Error;
6
7#[cfg(feature = "serde")]
8use serde::{Deserialize, Serialize};
9
10#[cfg_attr(feature = "serde", derive(Deserialize, Serialize), serde(rename_all = "snake_case"))]
12#[derive(Debug, Error, Clone, PartialEq, Eq)]
13pub enum MonikerError {
14 #[error("invalid moniker: {}", rep)]
15 InvalidMoniker { rep: String },
16 #[error("invalid moniker part: {_0}")]
17 InvalidMonikerPart(#[from] cm_types::ParseError),
18 #[error("moniker {} does not have prefix {}", moniker, prefix)]
19 MonikerDoesNotHavePrefix { moniker: String, prefix: String },
20}
21
22impl MonikerError {
23 pub fn invalid_moniker(rep: impl Into<String>) -> MonikerError {
24 MonikerError::InvalidMoniker { rep: rep.into() }
25 }
26}