use crate::ErrorMessage;
pub trait BooleanErrors {
fn error_if_false(self, context: impl AsRef<str>) -> Result<bool, ErrorMessage>;
fn error_if_true(self, context: impl AsRef<str>) -> Result<bool, ErrorMessage>;
fn error_dyn_if_false(self, context: impl FnOnce() -> String) -> Result<bool, ErrorMessage>;
fn error_dyn_if_true(self, context: impl FnOnce() -> String) -> Result<bool, ErrorMessage>;
}
impl BooleanErrors for bool {
fn error_if_false(self, context: impl AsRef<str>) -> Result<bool, ErrorMessage> {
if self {
Ok(self)
} else {
Err(ErrorMessage::new(context.as_ref()))
}
}
fn error_if_true(self, context: impl AsRef<str>) -> Result<bool, ErrorMessage> {
if self {
Err(ErrorMessage::new(context.as_ref()))
} else {
Ok(self)
}
}
fn error_dyn_if_false(self, context: impl FnOnce() -> String) -> Result<bool, ErrorMessage> {
if self {
Ok(self)
} else {
Err(ErrorMessage::new(context()))
}
}
fn error_dyn_if_true(self, context: impl FnOnce() -> String) -> Result<bool, ErrorMessage> {
if self {
Err(ErrorMessage::new(context()))
} else {
Ok(self)
}
}
}