5 stable releases

1.1.1 Mar 21, 2023
1.1.0 Jan 17, 2023
1.0.2 Mar 24, 2022
1.0.1 Mar 16, 2022
1.0.0 Mar 1, 2022

#962 in Algorithms

MIT license

9KB
132 lines

imei

An IMEI number validator implemented in Rust.

imei = "1"

Example

Basic example:

fn main() {
    let num = "490154203237518";
    let valid = imei::valid(num);

    println!("{num}: {valid}");
}

Result:

490154203237518: true

Speed

This validator is designed to be as fast and efficient as possible. It uses small number types, precalculates the character conversions, and only iterates through the imei number once. The speed test in the tests directory gets the average speed of validation over 10,000,000 cycles. Typically, the validation process sub 1000th of a milisecond (practically instant!).

Features

  • The std is enabled by default which implements error::Error for imei::Error.
  • The serde feature adds serialization/deserialization for the Imei struct.

Dependencies

~0.3–1MB
~21K SLoC