validator
pub trait Validate { fn validate(&self) -> Result<(), Errors>; }
fn validate(&self) -> Result<(), Errors>