use std::fmt::{Debug, Display};
pub trait Validator {
type Err: Debug + Display;
fn validate(&self, text: &str) -> Result<(), Self::Err>;
}
impl<T: Fn(&str) -> Result<(), E>, E: Debug + Display> Validator for T {
type Err = E;
fn validate(&self, text: &str) -> Result<(), Self::Err> {
self(text)
}
}