11 releases
0.3.4+8.13.34 | Apr 11, 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 |
#70 in Parser implementations
108,035 downloads per month
Used in 30 crates
(20 directly)
14MB
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–7MB
~129K SLoC