Function codes_check_digits::error::invalid_check_digit
source · pub fn invalid_check_digit<T1, T2>(expecting: T1, got: T2) -> CheckDigitErrorwhere
T1: Display,
T2: Display,Examples found in repository?
src/lib.rs (line 134)
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
fn validate<S>(&self, s: S) -> Result<(), CheckDigitError>
where
S: AsRef<str>,
{
let s = s.as_ref();
trace!(
algorithm_name = self.name(),
num_check_digits = self.number_of_check_digit_chars(),
"Validating check digits for input {:?}",
s
);
let check_digit_index = s.len() - self.number_of_check_digit_chars();
let check = self.calculate(&s[0..check_digit_index])?;
if s[check_digit_index..] == check.to_string() {
Ok(())
} else {
Err(invalid_check_digit(&s[check_digit_index..], check))
}
}