use crate::core::platform::MaybeSendSync;
#[non_exhaustive]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ValidationOutcome {
Success,
NoToken,
ExtractError,
InvalidToken,
BindingError,
CallError,
}
impl ValidationOutcome {
pub fn as_str(self) -> &'static str {
match self {
Self::Success => "success",
Self::NoToken => "no_token",
Self::ExtractError => "extract_error",
Self::InvalidToken => "invalid_token",
Self::BindingError => "binding_error",
Self::CallError => "call_error",
}
}
}
pub trait OnValidate: MaybeSendSync {
fn on_validate(&self, outcome: ValidationOutcome);
}
impl<F: Fn(ValidationOutcome) + MaybeSendSync> OnValidate for F {
fn on_validate(&self, outcome: ValidationOutcome) {
self(outcome)
}
}