pub mod xcsp3_core {
use std::fmt::{Display, Formatter};
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum DomainError {
UnknownInteger,
UnknownInterval,
UnknownFor,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ParseDomainError {
pub msg: String,
pub r#type: DomainError,
}
impl Display for ParseDomainError {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
write!(f, "{:?}: {}", self.r#type, self.msg)
}
}
impl ParseDomainError {
pub(crate) fn get_integer_error(s: &str) -> ParseDomainError {
const WEBSITE: &str = " please visit http://xcsp.org/specifications/variables/integer/";
ParseDomainError {
msg: (s.to_owned() + WEBSITE),
r#type: DomainError::UnknownInteger,
}
}
pub(crate) fn get_interval_error(s: &str) -> ParseDomainError {
const WEBSITE: &str = " please visit http://xcsp.org/specifications/variables/arrays/";
ParseDomainError {
msg: (s.to_owned() + WEBSITE),
r#type: DomainError::UnknownInterval,
}
}
pub(crate) fn get_domain_for_error(s: &str) -> ParseDomainError {
const WEBSITE: &str = " please visit http://xcsp.org/specifications/variables/arrays/";
ParseDomainError {
msg: (s.to_owned() + WEBSITE),
r#type: DomainError::UnknownFor,
}
}
}
}