12 releases
new 0.3.5+8.13.36 | May 13, 2024 |
---|---|
0.3.3+8.13.9 | Sep 19, 2023 |
0.3.2+8.13.9 | Mar 31, 2023 |
0.3.1+8.12.9 | Oct 12, 2020 |
0.1.0+8.7.0 | Jul 31, 2017 |
#52 in Parser implementations
129,154 downloads per month
Used in 30 crates
(20 directly)
13MB
3.5K
SLoC
phonenumber
Rust version of libphonenumber. We currently require 1.58.0 as minimum supported Rust version (MSRV).
Usage
Add this to your Cargo.toml
:
[dependencies]
phonenumber = "0.3"
Example
The following example parses, validates and formats the given phone number.
use phonenumber::Mode;
use std::env;
fn main() {
let mut args = env::args().skip(1).collect::<Vec<_>>();
if args.len() < 1 {
panic!("not enough arguments");
}
let number = args.pop().unwrap();
let country = args.pop().map(|c| c.parse().unwrap());
let number = phonenumber::parse(country, number).unwrap();
let valid = phonenumber::is_valid(&number);
if valid {
println!("\x1b[32m{:#?}\x1b[0m", number);
println!();
println!("International: {}", number.format().mode(Mode::International));
println!(" National: {}", number.format().mode(Mode::National));
println!(" RFC3966: {}", number.format().mode(Mode::Rfc3966));
println!(" E.164: {}", number.format().mode(Mode::E164));
}
else {
println!("\x1b[31m{:#?}\x1b[0m", number);
}
}
Dependencies
~5.5–7MB
~132K SLoC