Update phonenumberutil get_national_significant_number - &self reciever
This commit is contained in:
@@ -133,11 +133,11 @@ impl PhoneNumberUtil {
|
|||||||
Self::new_for_metadata(metadata_collection)
|
Self::new_for_metadata(metadata_collection)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn get_supported_regions(&self) -> impl Iterator<Item=&str> {
|
pub fn get_supported_regions(&self) -> impl Iterator<Item=&str> {
|
||||||
self.region_to_metadata_map.keys().map(| k | k.as_str())
|
self.region_to_metadata_map.keys().map(| k | k.as_str())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_supported_global_network_calling_codes(&self) -> impl Iterator<Item=i32> {
|
pub fn get_supported_global_network_calling_codes(&self) -> impl Iterator<Item=i32> {
|
||||||
self.country_code_to_non_geographical_metadata_map.keys().map(| k | *k)
|
self.country_code_to_non_geographical_metadata_map.keys().map(| k | *k)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,7 +271,7 @@ impl PhoneNumberUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
let country_calling_code = phone_number.country_code();
|
let country_calling_code = phone_number.country_code();
|
||||||
let mut formatted_number = Self::get_national_significant_number(phone_number);
|
let mut formatted_number = self.get_national_significant_number(phone_number);
|
||||||
|
|
||||||
if matches!(number_format, PhoneNumberFormat::E164) {
|
if matches!(number_format, PhoneNumberFormat::E164) {
|
||||||
// Early exit for E164 case (even if the country calling code is invalid)
|
// Early exit for E164 case (even if the country calling code is invalid)
|
||||||
@@ -309,7 +309,7 @@ impl PhoneNumberUtil {
|
|||||||
Ok(Cow::Owned(formatted_number))
|
Ok(Cow::Owned(formatted_number))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_national_significant_number(phone_number: &PhoneNumber) -> String {
|
pub fn get_national_significant_number(&self, phone_number: &PhoneNumber) -> String {
|
||||||
let zeros_start = if phone_number.italian_leading_zero() {
|
let zeros_start = if phone_number.italian_leading_zero() {
|
||||||
"0".repeat(max(phone_number.number_of_leading_zeros() as usize, 0))
|
"0".repeat(max(phone_number.number_of_leading_zeros() as usize, 0))
|
||||||
} else {
|
} else {
|
||||||
@@ -567,7 +567,7 @@ impl PhoneNumberUtil {
|
|||||||
let country_calling_code = phone_number.country_code();
|
let country_calling_code = phone_number.country_code();
|
||||||
// Note GetRegionCodeForCountryCode() is used because formatting information
|
// Note GetRegionCodeForCountryCode() is used because formatting information
|
||||||
// contained in the metadata for US.
|
// contained in the metadata for US.
|
||||||
let national_significant_number = Self::get_national_significant_number(phone_number);
|
let national_significant_number = self.get_national_significant_number(phone_number);
|
||||||
let region_code = self.get_region_code_for_country_code(country_calling_code);
|
let region_code = self.get_region_code_for_country_code(country_calling_code);
|
||||||
let Some(metadata) =
|
let Some(metadata) =
|
||||||
self.get_metadata_for_region_or_calling_code(country_calling_code, ®ion_code)
|
self.get_metadata_for_region_or_calling_code(country_calling_code, ®ion_code)
|
||||||
@@ -630,7 +630,7 @@ impl PhoneNumberUtil {
|
|||||||
carrier_code: &str,
|
carrier_code: &str,
|
||||||
) -> RegexResult<String> {
|
) -> RegexResult<String> {
|
||||||
let country_calling_code = phone_number.country_code();
|
let country_calling_code = phone_number.country_code();
|
||||||
let national_significant_number = Self::get_national_significant_number(phone_number);
|
let national_significant_number = self.get_national_significant_number(phone_number);
|
||||||
let region_code = self.get_region_code_for_country_code(country_calling_code);
|
let region_code = self.get_region_code_for_country_code(country_calling_code);
|
||||||
|
|
||||||
// Note GetRegionCodeForCountryCode() is used because formatting information
|
// Note GetRegionCodeForCountryCode() is used because formatting information
|
||||||
@@ -738,7 +738,7 @@ impl PhoneNumberUtil {
|
|||||||
let region_metadata = self.region_to_metadata_map
|
let region_metadata = self.region_to_metadata_map
|
||||||
.get(calling_from)
|
.get(calling_from)
|
||||||
.ok_or(InvalidMetadataForValidRegionError{})?;
|
.ok_or(InvalidMetadataForValidRegionError{})?;
|
||||||
let national_number = Self::get_national_significant_number(&number_no_extension);
|
let national_number = self.get_national_significant_number(&number_no_extension);
|
||||||
let format = if self.can_be_internationally_dialled(&number_no_extension)?
|
let format = if self.can_be_internationally_dialled(&number_no_extension)?
|
||||||
&& test_number_length_with_unknown_type(
|
&& test_number_length_with_unknown_type(
|
||||||
&national_number,
|
&national_number,
|
||||||
@@ -823,7 +823,7 @@ impl PhoneNumberUtil {
|
|||||||
else {
|
else {
|
||||||
return Ok(PhoneNumberType::Unknown)
|
return Ok(PhoneNumberType::Unknown)
|
||||||
};
|
};
|
||||||
let national_significant_number = Self::get_national_significant_number(phone_number);
|
let national_significant_number = self.get_national_significant_number(phone_number);
|
||||||
Ok(self.get_number_type_helper(&national_significant_number, metadata))
|
Ok(self.get_number_type_helper(&national_significant_number, metadata))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -849,7 +849,7 @@ impl PhoneNumberUtil {
|
|||||||
phone_number: &PhoneNumber,
|
phone_number: &PhoneNumber,
|
||||||
region_codes: &[&'b str],
|
region_codes: &[&'b str],
|
||||||
) -> InternalLogicResult<&'b str> {
|
) -> InternalLogicResult<&'b str> {
|
||||||
let national_number = Self::get_national_significant_number(phone_number);
|
let national_number = self.get_national_significant_number(phone_number);
|
||||||
for code in region_codes {
|
for code in region_codes {
|
||||||
// Metadata cannot be NULL because the region codes come from the country
|
// Metadata cannot be NULL because the region codes come from the country
|
||||||
// calling code map.
|
// calling code map.
|
||||||
@@ -966,7 +966,7 @@ impl PhoneNumberUtil {
|
|||||||
// are always internationally diallable, and will be caught here.
|
// are always internationally diallable, and will be caught here.
|
||||||
return Ok(true)
|
return Ok(true)
|
||||||
};
|
};
|
||||||
let national_significant_number = Self::get_national_significant_number(phone_number);
|
let national_significant_number = self.get_national_significant_number(phone_number);
|
||||||
return Ok(!self.is_number_matching_desc(
|
return Ok(!self.is_number_matching_desc(
|
||||||
&national_significant_number, &metadata.no_international_dialling
|
&national_significant_number, &metadata.no_international_dialling
|
||||||
));
|
));
|
||||||
@@ -994,7 +994,7 @@ impl PhoneNumberUtil {
|
|||||||
return Ok(self.format(phone_number, PhoneNumberFormat::International)?)
|
return Ok(self.format(phone_number, PhoneNumberFormat::International)?)
|
||||||
};
|
};
|
||||||
let country_code = phone_number.country_code();
|
let country_code = phone_number.country_code();
|
||||||
let national_significant_number = Self::get_national_significant_number(
|
let national_significant_number = self.get_national_significant_number(
|
||||||
phone_number,
|
phone_number,
|
||||||
);
|
);
|
||||||
if !self.has_valid_country_calling_code(country_code) {
|
if !self.has_valid_country_calling_code(country_code) {
|
||||||
@@ -1086,7 +1086,7 @@ impl PhoneNumberUtil {
|
|||||||
) else {
|
) else {
|
||||||
return Ok(false)
|
return Ok(false)
|
||||||
};
|
};
|
||||||
let national_number = Self::get_national_significant_number(phone_number);
|
let national_number = self.get_national_significant_number(phone_number);
|
||||||
let format_rule = self.choose_formatting_pattern_for_number(
|
let format_rule = self.choose_formatting_pattern_for_number(
|
||||||
&metadata.number_format,
|
&metadata.number_format,
|
||||||
&national_number
|
&national_number
|
||||||
@@ -1147,7 +1147,7 @@ impl PhoneNumberUtil {
|
|||||||
}
|
}
|
||||||
// Metadata cannot be NULL here because GetNddPrefixForRegion() (above)
|
// Metadata cannot be NULL here because GetNddPrefixForRegion() (above)
|
||||||
// leaves the prefix empty if there is no metadata for the region.
|
// leaves the prefix empty if there is no metadata for the region.
|
||||||
let national_number = Self::get_national_significant_number(phone_number);
|
let national_number = self.get_national_significant_number(phone_number);
|
||||||
// This shouldn't be NULL, because we have checked that above with
|
// This shouldn't be NULL, because we have checked that above with
|
||||||
// HasFormattingPatternForNumber.
|
// HasFormattingPatternForNumber.
|
||||||
let format_rule = self.choose_formatting_pattern_for_number(
|
let format_rule = self.choose_formatting_pattern_for_number(
|
||||||
@@ -1249,7 +1249,7 @@ impl PhoneNumberUtil {
|
|||||||
if let Some(metadata) = metadata.filter(| metadata |
|
if let Some(metadata) = metadata.filter(| metadata |
|
||||||
!(REGION_CODE_FOR_NON_GEO_ENTITY != region_code && country_code != metadata.country_code())
|
!(REGION_CODE_FOR_NON_GEO_ENTITY != region_code && country_code != metadata.country_code())
|
||||||
) {
|
) {
|
||||||
let national_number = Self::get_national_significant_number(phone_number);
|
let national_number = self.get_national_significant_number(phone_number);
|
||||||
!matches!(self.get_number_type_helper(&national_number, metadata), PhoneNumberType::Unknown)
|
!matches!(self.get_number_type_helper(&national_number, metadata), PhoneNumberType::Unknown)
|
||||||
} else {
|
} else {
|
||||||
false
|
false
|
||||||
@@ -1283,7 +1283,7 @@ impl PhoneNumberUtil {
|
|||||||
// We choose three because all valid alpha numbers have 3 digits at the start
|
// We choose three because all valid alpha numbers have 3 digits at the start
|
||||||
// - if it does not, then we don't trim anything at all. Similarly, if the
|
// - if it does not, then we don't trim anything at all. Similarly, if the
|
||||||
// national number was less than three digits, we don't trim anything at all.
|
// national number was less than three digits, we don't trim anything at all.
|
||||||
let national_number = Self::get_national_significant_number(phone_number);
|
let national_number = self.get_national_significant_number(phone_number);
|
||||||
if national_number.len() > 3 {
|
if national_number.len() > 3 {
|
||||||
let first_national_number_digit = normalized_raw_input
|
let first_national_number_digit = normalized_raw_input
|
||||||
.find(&national_number[0..3]);
|
.find(&national_number[0..3]);
|
||||||
@@ -1572,7 +1572,7 @@ impl PhoneNumberUtil {
|
|||||||
pub fn is_possible_number_for_type_with_reason(
|
pub fn is_possible_number_for_type_with_reason(
|
||||||
&self, phone_number: &PhoneNumber, phone_number_type: PhoneNumberType
|
&self, phone_number: &PhoneNumber, phone_number_type: PhoneNumberType
|
||||||
) -> ValidationResult {
|
) -> ValidationResult {
|
||||||
let national_number = Self::get_national_significant_number(phone_number);
|
let national_number = self.get_national_significant_number(phone_number);
|
||||||
let country_code = phone_number.country_code();
|
let country_code = phone_number.country_code();
|
||||||
// Note: For regions that share a country calling code, like NANPA numbers, we
|
// Note: For regions that share a country calling code, like NANPA numbers, we
|
||||||
// just use the rules from the default region (US in this case) since the
|
// just use the rules from the default region (US in this case) since the
|
||||||
|
|||||||
Reference in New Issue
Block a user