29 lines
740 B
Rust
29 lines
740 B
Rust
use crate::{models::mentions::C2SMentionRequest, error::GementionError};
|
|
use super::Validation;
|
|
use thiserror::Error;
|
|
|
|
#[derive(Debug, Error)]
|
|
pub enum C2SValidationError {
|
|
#[error("a username is required on the client certificate")]
|
|
UsernameRequired,
|
|
|
|
#[error("a client certificate is required")]
|
|
ClientCertificateRequired,
|
|
}
|
|
|
|
impl Validation for C2SMentionRequest<'_> {
|
|
type Error = C2SValidationError;
|
|
|
|
fn validate(self) -> Result<Self, Self::Error> {
|
|
if self.username().is_none() {
|
|
return Err(C2SValidationError::UsernameRequired);
|
|
}
|
|
|
|
if self.certificate().is_none() {
|
|
return Err(C2SValidationError::ClientCertificateRequired);
|
|
}
|
|
|
|
Ok(self)
|
|
}
|
|
}
|