///|
fn main {
let phone = @dialnumber.parse("020 7946 0958", "GB").unwrap()
println("e164: " + @dialnumber.format_e164(phone))
println("valid: " + @dialnumber.is_valid(phone).to_string())
let network = @dialnumber.parse_e164("+80012345678").unwrap()
println("network_region: " + @dialnumber.region_of_number(network).unwrap())
println("network_valid: " + @dialnumber.is_valid(network).to_string())
let a = @dialnumber.PhoneNumber::new(1, "2015550123")
let b = @dialnumber.PhoneNumber::new(44, "2015550123")
println(
"different_country_match: " + @dialnumber.is_number_match(a, b).to_string(),
)
let formatter = @dialnumber.AsYouTypeFormatter::new("GB")
for c in "02079460958" {
let _ = formatter.input_digit(c)
}
println("as_you_type: " + formatter.current_output())
let uri = @dialnumber.parse_tel_uri_full("tel:030123456;phone-context=+49").unwrap()
println(
"numeric_context: " +
@dialnumber.format_e164(@dialnumber.resolve_tel_uri(uri).unwrap()),
)
let private_uri = @dialnumber.parse_tel_uri_full(
"tel:7042;phone-context=example.com",
).unwrap()
let mapped = @dialnumber.resolve_tel_uri(private_uri, context_resolver=fn(
context,
subscriber,
) {
if context == "example.com" && subscriber == "7042" {
@dialnumber.parse_e164("+12015550123")
} else {
None
}
}).unwrap()
println("explicit_authority: " + @dialnumber.format_e164(mapped))
}