#[derive(Debug, Eq, PartialEq, thiserror::Error)]
#[error("{field} has invalid value{clarification}{examples}",
clarification = clarification
.as_ref()
.map(|v| format!(": {}", v))
.unwrap_or_default(),
examples = examples
.as_ref()
.map(|v| format!(": {}", v.join(", ")))
.unwrap_or_default(),
)]
pub struct ValueInvalidArgs {
pub field: String,
pub clarification: Option<String>,
pub examples: Option<Vec<String>>,
}
#[derive(Debug, thiserror::Error)]
pub enum ValidationError {
#[error("field {0} is not unique")]
NotUnique(String),
#[error("field {0} cannot be empty")]
EmptyList(String),
#[error(transparent)]
ValueInvalid(#[from] ValueInvalidArgs),
#[error(transparent)]
FilterInvalid(#[from] crate::filters::CreationError),
}