2个版本

使用旧的Rust 2015

0.1.1 2016年11月14日
0.1.0 2016年11月14日

#357 in 国际化(i18n)

MIT 协议

1MB
11K SLoC

Rust 9K SLoC // 0.0% comments C++ 2K SLoC

libphonenumber-sys

这是创建Rust ffi绑定到谷歌优秀的libphonenumber的早期尝试。大多数crate已通过cpp_to_rust从当前的libphonenumber版本7.7自动生成,然后修改以更好地与Rust的本地类型一起使用。许多函数尚未正确实现,特别是那些接受或输出std::strings的函数,因为它们需要对C包装器进行额外的修改。

示例

use libphonenumber_sys::{PhoneNumberUtil,PhoneNumber,PhoneNumberFormat,PhoneNumberUtilError};

//get instance of PhoneNumberUtil
let util = PhoneNumberUtil::get_instance();

//construct a number by hand
let number1 = PhoneNumber::new();
number1.set_country_code(1);
number1.set_national_number(2128322000);

//check if number is valid
assert_eq!(util.is_valid_number(&number1), true);

//parse a number from a string
let number2 = util.parse("(800) 1234-5678","US").unwrap();

assert_eq!(number2.country_code(), 1);
assert_eq!(number2.national_number(), 80012345678);

//format a number as E164 string
let e164 = util.format(&number2, PhoneNumberFormat::E164);

assert_eq!(e164, "+180012345678");

依赖项