zino_core/validation/validator/
credit_card.rs

1use super::Validator;
2use crate::{bail, error::Error};
3
4/// A validator for a credit card number.
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
6pub struct CreditCardValidator;
7
8impl Validator<str> for CreditCardValidator {
9    type Error = Error;
10
11    #[inline]
12    fn validate(&self, data: &str) -> Result<(), Self::Error> {
13        if card_validate::Validate::from(data).is_err() {
14            bail!("invalid credit card number");
15        }
16        Ok(())
17    }
18}