pub(crate) mod c2s;
pub trait Validation {
type Error;
fn validate(self) -> Result<Self, Self::Error> where Self: Sized;
}
pub trait AsyncValidation {
async fn validate_async(self) -> Result<Self, Self::Error> where Self: Sized;