| @ -0,0 +1,32 @@ | |||||
| // Copyright (C) 2009 The Libphonenumber Authors | |||||
| // | |||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| // you may not use this file except in compliance with the License. | |||||
| // You may obtain a copy of the License at | |||||
| // | |||||
| // http://www.apache.org/licenses/LICENSE-2.0 | |||||
| // | |||||
| // Unless required by applicable law or agreed to in writing, software | |||||
| // distributed under the License is distributed on an "AS IS" BASIS, | |||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| // See the License for the specific language governing permissions and | |||||
| // limitations under the License. | |||||
| #include "phonenumbers/parsingoptions.h" | |||||
| namespace i18n { | |||||
| namespace phonenumbers { | |||||
| ParsingOptions& ParsingOptions::SetDefaultRegion( | |||||
| const std::string& default_region) { | |||||
| default_region_ = default_region; | |||||
| return *this; | |||||
| } | |||||
| ParsingOptions& ParsingOptions::SetKeepRawInput(bool keep_raw_input) { | |||||
| keep_raw_input_ = keep_raw_input; | |||||
| return *this; | |||||
| } | |||||
| } // namespace phonenumbers | |||||
| } // namespace i18n | |||||
| @ -0,0 +1,56 @@ | |||||
| // Copyright (C) 2009 The Libphonenumber Authors | |||||
| // | |||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| // you may not use this file except in compliance with the License. | |||||
| // You may obtain a copy of the License at | |||||
| // | |||||
| // http://www.apache.org/licenses/LICENSE-2.0 | |||||
| // | |||||
| // Unless required by applicable law or agreed to in writing, software | |||||
| // distributed under the License is distributed on an "AS IS" BASIS, | |||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| // See the License for the specific language governing permissions and | |||||
| // limitations under the License. | |||||
| #ifndef I18N_PHONENUMBERS_PARSINGOPTIONS_H_ | |||||
| #define I18N_PHONENUMBERS_PARSINGOPTIONS_H_ | |||||
| #include <string> | |||||
| namespace i18n { | |||||
| namespace phonenumbers { | |||||
| // Options for parsing a phone number. To be used with the ParseWithOptions | |||||
| // method. | |||||
| // Example: | |||||
| // ParsingOptions().SetDefaultRegion("US").SetKeepRawInput(true); | |||||
| class ParsingOptions { | |||||
| public: | |||||
| ParsingOptions() : default_region_("ZZ"), keep_raw_input_(false) {}; | |||||
| // Set the value for default_region_. | |||||
| ParsingOptions& SetDefaultRegion( | |||||
| const std::string& default_region); | |||||
| // Set the value for keep_raw_input_. | |||||
| ParsingOptions& SetKeepRawInput(bool keep_raw_input); | |||||
| private: | |||||
| friend class PhoneNumberUtil; | |||||
| // The region we are expecting the number to be from. This is ignored if the | |||||
| // number being parsed is written in international format. In case of national | |||||
| // format, the country_code will be set to the one of this default region. If | |||||
| // the number is guaranteed to start with a '+' followed by the country | |||||
| // calling code, then "ZZ" or null can be supplied. | |||||
| std::string default_region_; | |||||
| // Whether the raw input should be kept in the PhoneNumber object. If true, | |||||
| // the raw_input field and country_code_source fields will be populated. | |||||
| bool keep_raw_input_; | |||||
| }; | |||||
| } // namespace phonenumbers | |||||
| } // namespace i18n | |||||
| #endif // I18N_PHONENUMBERS_PARSINGOPTIONS_H_ | |||||
| @ -0,0 +1,639 @@ | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: phonenumber.proto | |||||
| #include "phonenumber.pb.h" | |||||
| #include <algorithm> | |||||
| #include <google/protobuf/io/coded_stream.h> | |||||
| #include <google/protobuf/extension_set.h> | |||||
| #include <google/protobuf/wire_format_lite.h> | |||||
| #include <google/protobuf/io/zero_copy_stream_impl_lite.h> | |||||
| // @@protoc_insertion_point(includes) | |||||
| #include <google/protobuf/port_def.inc> | |||||
| PROTOBUF_PRAGMA_INIT_SEG | |||||
| namespace _pb = ::PROTOBUF_NAMESPACE_ID; | |||||
| namespace _pbi = _pb::internal; | |||||
| namespace i18n { | |||||
| namespace phonenumbers { | |||||
| PROTOBUF_CONSTEXPR PhoneNumber::PhoneNumber( | |||||
| ::_pbi::ConstantInitialized): _impl_{ | |||||
| /*decltype(_impl_._has_bits_)*/{} | |||||
| , /*decltype(_impl_._cached_size_)*/{} | |||||
| , /*decltype(_impl_.extension_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} | |||||
| , /*decltype(_impl_.raw_input_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} | |||||
| , /*decltype(_impl_.preferred_domestic_carrier_code_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} | |||||
| , /*decltype(_impl_.national_number_)*/uint64_t{0u} | |||||
| , /*decltype(_impl_.country_code_)*/0 | |||||
| , /*decltype(_impl_.italian_leading_zero_)*/false | |||||
| , /*decltype(_impl_.country_code_source_)*/0 | |||||
| , /*decltype(_impl_.number_of_leading_zeros_)*/1} {} | |||||
| struct PhoneNumberDefaultTypeInternal { | |||||
| PROTOBUF_CONSTEXPR PhoneNumberDefaultTypeInternal() | |||||
| : _instance(::_pbi::ConstantInitialized{}) {} | |||||
| ~PhoneNumberDefaultTypeInternal() {} | |||||
| union { | |||||
| PhoneNumber _instance; | |||||
| }; | |||||
| }; | |||||
| PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PhoneNumberDefaultTypeInternal _PhoneNumber_default_instance_; | |||||
| } // namespace phonenumbers | |||||
| } // namespace i18n | |||||
| namespace i18n { | |||||
| namespace phonenumbers { | |||||
| bool PhoneNumber_CountryCodeSource_IsValid(int value) { | |||||
| switch (value) { | |||||
| case 0: | |||||
| case 1: | |||||
| case 5: | |||||
| case 10: | |||||
| case 20: | |||||
| return true; | |||||
| default: | |||||
| return false; | |||||
| } | |||||
| } | |||||
| static ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string> PhoneNumber_CountryCodeSource_strings[5] = {}; | |||||
| static const char PhoneNumber_CountryCodeSource_names[] = | |||||
| "FROM_DEFAULT_COUNTRY" | |||||
| "FROM_NUMBER_WITHOUT_PLUS_SIGN" | |||||
| "FROM_NUMBER_WITH_IDD" | |||||
| "FROM_NUMBER_WITH_PLUS_SIGN" | |||||
| "UNSPECIFIED"; | |||||
| static const ::PROTOBUF_NAMESPACE_ID::internal::EnumEntry PhoneNumber_CountryCodeSource_entries[] = { | |||||
| { {PhoneNumber_CountryCodeSource_names + 0, 20}, 20 }, | |||||
| { {PhoneNumber_CountryCodeSource_names + 20, 29}, 10 }, | |||||
| { {PhoneNumber_CountryCodeSource_names + 49, 20}, 5 }, | |||||
| { {PhoneNumber_CountryCodeSource_names + 69, 26}, 1 }, | |||||
| { {PhoneNumber_CountryCodeSource_names + 95, 11}, 0 }, | |||||
| }; | |||||
| static const int PhoneNumber_CountryCodeSource_entries_by_number[] = { | |||||
| 4, // 0 -> UNSPECIFIED | |||||
| 3, // 1 -> FROM_NUMBER_WITH_PLUS_SIGN | |||||
| 2, // 5 -> FROM_NUMBER_WITH_IDD | |||||
| 1, // 10 -> FROM_NUMBER_WITHOUT_PLUS_SIGN | |||||
| 0, // 20 -> FROM_DEFAULT_COUNTRY | |||||
| }; | |||||
| const std::string& PhoneNumber_CountryCodeSource_Name( | |||||
| PhoneNumber_CountryCodeSource value) { | |||||
| static const bool dummy = | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::InitializeEnumStrings( | |||||
| PhoneNumber_CountryCodeSource_entries, | |||||
| PhoneNumber_CountryCodeSource_entries_by_number, | |||||
| 5, PhoneNumber_CountryCodeSource_strings); | |||||
| (void) dummy; | |||||
| int idx = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumName( | |||||
| PhoneNumber_CountryCodeSource_entries, | |||||
| PhoneNumber_CountryCodeSource_entries_by_number, | |||||
| 5, value); | |||||
| return idx == -1 ? ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString() : | |||||
| PhoneNumber_CountryCodeSource_strings[idx].get(); | |||||
| } | |||||
| bool PhoneNumber_CountryCodeSource_Parse( | |||||
| ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, PhoneNumber_CountryCodeSource* value) { | |||||
| int int_value; | |||||
| bool success = ::PROTOBUF_NAMESPACE_ID::internal::LookUpEnumValue( | |||||
| PhoneNumber_CountryCodeSource_entries, 5, name, &int_value); | |||||
| if (success) { | |||||
| *value = static_cast<PhoneNumber_CountryCodeSource>(int_value); | |||||
| } | |||||
| return success; | |||||
| } | |||||
| #if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912)) | |||||
| constexpr PhoneNumber_CountryCodeSource PhoneNumber::UNSPECIFIED; | |||||
| constexpr PhoneNumber_CountryCodeSource PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN; | |||||
| constexpr PhoneNumber_CountryCodeSource PhoneNumber::FROM_NUMBER_WITH_IDD; | |||||
| constexpr PhoneNumber_CountryCodeSource PhoneNumber::FROM_NUMBER_WITHOUT_PLUS_SIGN; | |||||
| constexpr PhoneNumber_CountryCodeSource PhoneNumber::FROM_DEFAULT_COUNTRY; | |||||
| constexpr PhoneNumber_CountryCodeSource PhoneNumber::CountryCodeSource_MIN; | |||||
| constexpr PhoneNumber_CountryCodeSource PhoneNumber::CountryCodeSource_MAX; | |||||
| constexpr int PhoneNumber::CountryCodeSource_ARRAYSIZE; | |||||
| #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912)) | |||||
| // =================================================================== | |||||
| class PhoneNumber::_Internal { | |||||
| public: | |||||
| using HasBits = decltype(std::declval<PhoneNumber>()._impl_._has_bits_); | |||||
| static void set_has_country_code(HasBits* has_bits) { | |||||
| (*has_bits)[0] |= 16u; | |||||
| } | |||||
| static void set_has_national_number(HasBits* has_bits) { | |||||
| (*has_bits)[0] |= 8u; | |||||
| } | |||||
| static void set_has_extension(HasBits* has_bits) { | |||||
| (*has_bits)[0] |= 1u; | |||||
| } | |||||
| static void set_has_italian_leading_zero(HasBits* has_bits) { | |||||
| (*has_bits)[0] |= 32u; | |||||
| } | |||||
| static void set_has_number_of_leading_zeros(HasBits* has_bits) { | |||||
| (*has_bits)[0] |= 128u; | |||||
| } | |||||
| static void set_has_raw_input(HasBits* has_bits) { | |||||
| (*has_bits)[0] |= 2u; | |||||
| } | |||||
| static void set_has_country_code_source(HasBits* has_bits) { | |||||
| (*has_bits)[0] |= 64u; | |||||
| } | |||||
| static void set_has_preferred_domestic_carrier_code(HasBits* has_bits) { | |||||
| (*has_bits)[0] |= 4u; | |||||
| } | |||||
| static bool MissingRequiredFields(const HasBits& has_bits) { | |||||
| return ((has_bits[0] & 0x00000018) ^ 0x00000018) != 0; | |||||
| } | |||||
| }; | |||||
| PhoneNumber::PhoneNumber(::PROTOBUF_NAMESPACE_ID::Arena* arena, | |||||
| bool is_message_owned) | |||||
| : ::PROTOBUF_NAMESPACE_ID::MessageLite(arena, is_message_owned) { | |||||
| SharedCtor(arena, is_message_owned); | |||||
| // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PhoneNumber) | |||||
| } | |||||
| PhoneNumber::PhoneNumber(const PhoneNumber& from) | |||||
| : ::PROTOBUF_NAMESPACE_ID::MessageLite() { | |||||
| PhoneNumber* const _this = this; (void)_this; | |||||
| new (&_impl_) Impl_{ | |||||
| decltype(_impl_._has_bits_){from._impl_._has_bits_} | |||||
| , /*decltype(_impl_._cached_size_)*/{} | |||||
| , decltype(_impl_.extension_){} | |||||
| , decltype(_impl_.raw_input_){} | |||||
| , decltype(_impl_.preferred_domestic_carrier_code_){} | |||||
| , decltype(_impl_.national_number_){} | |||||
| , decltype(_impl_.country_code_){} | |||||
| , decltype(_impl_.italian_leading_zero_){} | |||||
| , decltype(_impl_.country_code_source_){} | |||||
| , decltype(_impl_.number_of_leading_zeros_){}}; | |||||
| _internal_metadata_.MergeFrom<std::string>(from._internal_metadata_); | |||||
| _impl_.extension_.InitDefault(); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| _impl_.extension_.Set("", GetArenaForAllocation()); | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| if (from._internal_has_extension()) { | |||||
| _this->_impl_.extension_.Set(from._internal_extension(), | |||||
| _this->GetArenaForAllocation()); | |||||
| } | |||||
| _impl_.raw_input_.InitDefault(); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| _impl_.raw_input_.Set("", GetArenaForAllocation()); | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| if (from._internal_has_raw_input()) { | |||||
| _this->_impl_.raw_input_.Set(from._internal_raw_input(), | |||||
| _this->GetArenaForAllocation()); | |||||
| } | |||||
| _impl_.preferred_domestic_carrier_code_.InitDefault(); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| _impl_.preferred_domestic_carrier_code_.Set("", GetArenaForAllocation()); | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| if (from._internal_has_preferred_domestic_carrier_code()) { | |||||
| _this->_impl_.preferred_domestic_carrier_code_.Set(from._internal_preferred_domestic_carrier_code(), | |||||
| _this->GetArenaForAllocation()); | |||||
| } | |||||
| ::memcpy(&_impl_.national_number_, &from._impl_.national_number_, | |||||
| static_cast<size_t>(reinterpret_cast<char*>(&_impl_.number_of_leading_zeros_) - | |||||
| reinterpret_cast<char*>(&_impl_.national_number_)) + sizeof(_impl_.number_of_leading_zeros_)); | |||||
| // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PhoneNumber) | |||||
| } | |||||
| inline void PhoneNumber::SharedCtor( | |||||
| ::_pb::Arena* arena, bool is_message_owned) { | |||||
| (void)arena; | |||||
| (void)is_message_owned; | |||||
| new (&_impl_) Impl_{ | |||||
| decltype(_impl_._has_bits_){} | |||||
| , /*decltype(_impl_._cached_size_)*/{} | |||||
| , decltype(_impl_.extension_){} | |||||
| , decltype(_impl_.raw_input_){} | |||||
| , decltype(_impl_.preferred_domestic_carrier_code_){} | |||||
| , decltype(_impl_.national_number_){uint64_t{0u}} | |||||
| , decltype(_impl_.country_code_){0} | |||||
| , decltype(_impl_.italian_leading_zero_){false} | |||||
| , decltype(_impl_.country_code_source_){0} | |||||
| , decltype(_impl_.number_of_leading_zeros_){1} | |||||
| }; | |||||
| _impl_.extension_.InitDefault(); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| _impl_.extension_.Set("", GetArenaForAllocation()); | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| _impl_.raw_input_.InitDefault(); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| _impl_.raw_input_.Set("", GetArenaForAllocation()); | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| _impl_.preferred_domestic_carrier_code_.InitDefault(); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| _impl_.preferred_domestic_carrier_code_.Set("", GetArenaForAllocation()); | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| } | |||||
| PhoneNumber::~PhoneNumber() { | |||||
| // @@protoc_insertion_point(destructor:i18n.phonenumbers.PhoneNumber) | |||||
| if (auto *arena = _internal_metadata_.DeleteReturnArena<std::string>()) { | |||||
| (void)arena; | |||||
| return; | |||||
| } | |||||
| SharedDtor(); | |||||
| } | |||||
| inline void PhoneNumber::SharedDtor() { | |||||
| GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); | |||||
| _impl_.extension_.Destroy(); | |||||
| _impl_.raw_input_.Destroy(); | |||||
| _impl_.preferred_domestic_carrier_code_.Destroy(); | |||||
| } | |||||
| void PhoneNumber::SetCachedSize(int size) const { | |||||
| _impl_._cached_size_.Set(size); | |||||
| } | |||||
| void PhoneNumber::Clear() { | |||||
| // @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PhoneNumber) | |||||
| uint32_t cached_has_bits = 0; | |||||
| // Prevent compiler warnings about cached_has_bits being unused | |||||
| (void) cached_has_bits; | |||||
| cached_has_bits = _impl_._has_bits_[0]; | |||||
| if (cached_has_bits & 0x00000007u) { | |||||
| if (cached_has_bits & 0x00000001u) { | |||||
| _impl_.extension_.ClearNonDefaultToEmpty(); | |||||
| } | |||||
| if (cached_has_bits & 0x00000002u) { | |||||
| _impl_.raw_input_.ClearNonDefaultToEmpty(); | |||||
| } | |||||
| if (cached_has_bits & 0x00000004u) { | |||||
| _impl_.preferred_domestic_carrier_code_.ClearNonDefaultToEmpty(); | |||||
| } | |||||
| } | |||||
| if (cached_has_bits & 0x000000f8u) { | |||||
| ::memset(&_impl_.national_number_, 0, static_cast<size_t>( | |||||
| reinterpret_cast<char*>(&_impl_.country_code_source_) - | |||||
| reinterpret_cast<char*>(&_impl_.national_number_)) + sizeof(_impl_.country_code_source_)); | |||||
| _impl_.number_of_leading_zeros_ = 1; | |||||
| } | |||||
| _impl_._has_bits_.Clear(); | |||||
| _internal_metadata_.Clear<std::string>(); | |||||
| } | |||||
| const char* PhoneNumber::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { | |||||
| #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure | |||||
| _Internal::HasBits has_bits{}; | |||||
| while (!ctx->Done(&ptr)) { | |||||
| uint32_t tag; | |||||
| ptr = ::_pbi::ReadTag(ptr, &tag); | |||||
| switch (tag >> 3) { | |||||
| // required int32 country_code = 1; | |||||
| case 1: | |||||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) { | |||||
| _Internal::set_has_country_code(&has_bits); | |||||
| _impl_.country_code_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); | |||||
| CHK_(ptr); | |||||
| } else | |||||
| goto handle_unusual; | |||||
| continue; | |||||
| // required uint64 national_number = 2; | |||||
| case 2: | |||||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) { | |||||
| _Internal::set_has_national_number(&has_bits); | |||||
| _impl_.national_number_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); | |||||
| CHK_(ptr); | |||||
| } else | |||||
| goto handle_unusual; | |||||
| continue; | |||||
| // optional string extension = 3; | |||||
| case 3: | |||||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) { | |||||
| auto str = _internal_mutable_extension(); | |||||
| ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); | |||||
| CHK_(ptr); | |||||
| } else | |||||
| goto handle_unusual; | |||||
| continue; | |||||
| // optional bool italian_leading_zero = 4; | |||||
| case 4: | |||||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) { | |||||
| _Internal::set_has_italian_leading_zero(&has_bits); | |||||
| _impl_.italian_leading_zero_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); | |||||
| CHK_(ptr); | |||||
| } else | |||||
| goto handle_unusual; | |||||
| continue; | |||||
| // optional string raw_input = 5; | |||||
| case 5: | |||||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) { | |||||
| auto str = _internal_mutable_raw_input(); | |||||
| ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); | |||||
| CHK_(ptr); | |||||
| } else | |||||
| goto handle_unusual; | |||||
| continue; | |||||
| // optional .i18n.phonenumbers.PhoneNumber.CountryCodeSource country_code_source = 6; | |||||
| case 6: | |||||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) { | |||||
| uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); | |||||
| CHK_(ptr); | |||||
| if (PROTOBUF_PREDICT_TRUE(::i18n::phonenumbers::PhoneNumber_CountryCodeSource_IsValid(val))) { | |||||
| _internal_set_country_code_source(static_cast<::i18n::phonenumbers::PhoneNumber_CountryCodeSource>(val)); | |||||
| } else { | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(6, val, mutable_unknown_fields()); | |||||
| } | |||||
| } else | |||||
| goto handle_unusual; | |||||
| continue; | |||||
| // optional string preferred_domestic_carrier_code = 7; | |||||
| case 7: | |||||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) { | |||||
| auto str = _internal_mutable_preferred_domestic_carrier_code(); | |||||
| ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); | |||||
| CHK_(ptr); | |||||
| } else | |||||
| goto handle_unusual; | |||||
| continue; | |||||
| // optional int32 number_of_leading_zeros = 8 [default = 1]; | |||||
| case 8: | |||||
| if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) { | |||||
| _Internal::set_has_number_of_leading_zeros(&has_bits); | |||||
| _impl_.number_of_leading_zeros_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); | |||||
| CHK_(ptr); | |||||
| } else | |||||
| goto handle_unusual; | |||||
| continue; | |||||
| default: | |||||
| goto handle_unusual; | |||||
| } // switch | |||||
| handle_unusual: | |||||
| if ((tag == 0) || ((tag & 7) == 4)) { | |||||
| CHK_(ptr); | |||||
| ctx->SetLastTag(tag); | |||||
| goto message_done; | |||||
| } | |||||
| ptr = UnknownFieldParse( | |||||
| tag, | |||||
| _internal_metadata_.mutable_unknown_fields<std::string>(), | |||||
| ptr, ctx); | |||||
| CHK_(ptr != nullptr); | |||||
| } // while | |||||
| message_done: | |||||
| _impl_._has_bits_.Or(has_bits); | |||||
| return ptr; | |||||
| failure: | |||||
| ptr = nullptr; | |||||
| goto message_done; | |||||
| #undef CHK_ | |||||
| } | |||||
| uint8_t* PhoneNumber::_InternalSerialize( | |||||
| uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { | |||||
| // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PhoneNumber) | |||||
| uint32_t cached_has_bits = 0; | |||||
| (void) cached_has_bits; | |||||
| cached_has_bits = _impl_._has_bits_[0]; | |||||
| // required int32 country_code = 1; | |||||
| if (cached_has_bits & 0x00000010u) { | |||||
| target = stream->EnsureSpace(target); | |||||
| target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_country_code(), target); | |||||
| } | |||||
| // required uint64 national_number = 2; | |||||
| if (cached_has_bits & 0x00000008u) { | |||||
| target = stream->EnsureSpace(target); | |||||
| target = ::_pbi::WireFormatLite::WriteUInt64ToArray(2, this->_internal_national_number(), target); | |||||
| } | |||||
| // optional string extension = 3; | |||||
| if (cached_has_bits & 0x00000001u) { | |||||
| target = stream->WriteStringMaybeAliased( | |||||
| 3, this->_internal_extension(), target); | |||||
| } | |||||
| // optional bool italian_leading_zero = 4; | |||||
| if (cached_has_bits & 0x00000020u) { | |||||
| target = stream->EnsureSpace(target); | |||||
| target = ::_pbi::WireFormatLite::WriteBoolToArray(4, this->_internal_italian_leading_zero(), target); | |||||
| } | |||||
| // optional string raw_input = 5; | |||||
| if (cached_has_bits & 0x00000002u) { | |||||
| target = stream->WriteStringMaybeAliased( | |||||
| 5, this->_internal_raw_input(), target); | |||||
| } | |||||
| // optional .i18n.phonenumbers.PhoneNumber.CountryCodeSource country_code_source = 6; | |||||
| if (cached_has_bits & 0x00000040u) { | |||||
| target = stream->EnsureSpace(target); | |||||
| target = ::_pbi::WireFormatLite::WriteEnumToArray( | |||||
| 6, this->_internal_country_code_source(), target); | |||||
| } | |||||
| // optional string preferred_domestic_carrier_code = 7; | |||||
| if (cached_has_bits & 0x00000004u) { | |||||
| target = stream->WriteStringMaybeAliased( | |||||
| 7, this->_internal_preferred_domestic_carrier_code(), target); | |||||
| } | |||||
| // optional int32 number_of_leading_zeros = 8 [default = 1]; | |||||
| if (cached_has_bits & 0x00000080u) { | |||||
| target = stream->EnsureSpace(target); | |||||
| target = ::_pbi::WireFormatLite::WriteInt32ToArray(8, this->_internal_number_of_leading_zeros(), target); | |||||
| } | |||||
| if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { | |||||
| target = stream->WriteRaw(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).data(), | |||||
| static_cast<int>(_internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size()), target); | |||||
| } | |||||
| // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PhoneNumber) | |||||
| return target; | |||||
| } | |||||
| size_t PhoneNumber::RequiredFieldsByteSizeFallback() const { | |||||
| // @@protoc_insertion_point(required_fields_byte_size_fallback_start:i18n.phonenumbers.PhoneNumber) | |||||
| size_t total_size = 0; | |||||
| if (_internal_has_national_number()) { | |||||
| // required uint64 national_number = 2; | |||||
| total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_national_number()); | |||||
| } | |||||
| if (_internal_has_country_code()) { | |||||
| // required int32 country_code = 1; | |||||
| total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_country_code()); | |||||
| } | |||||
| return total_size; | |||||
| } | |||||
| size_t PhoneNumber::ByteSizeLong() const { | |||||
| // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PhoneNumber) | |||||
| size_t total_size = 0; | |||||
| if (((_impl_._has_bits_[0] & 0x00000018) ^ 0x00000018) == 0) { // All required fields are present. | |||||
| // required uint64 national_number = 2; | |||||
| total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_national_number()); | |||||
| // required int32 country_code = 1; | |||||
| total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_country_code()); | |||||
| } else { | |||||
| total_size += RequiredFieldsByteSizeFallback(); | |||||
| } | |||||
| uint32_t cached_has_bits = 0; | |||||
| // Prevent compiler warnings about cached_has_bits being unused | |||||
| (void) cached_has_bits; | |||||
| cached_has_bits = _impl_._has_bits_[0]; | |||||
| if (cached_has_bits & 0x00000007u) { | |||||
| // optional string extension = 3; | |||||
| if (cached_has_bits & 0x00000001u) { | |||||
| total_size += 1 + | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( | |||||
| this->_internal_extension()); | |||||
| } | |||||
| // optional string raw_input = 5; | |||||
| if (cached_has_bits & 0x00000002u) { | |||||
| total_size += 1 + | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( | |||||
| this->_internal_raw_input()); | |||||
| } | |||||
| // optional string preferred_domestic_carrier_code = 7; | |||||
| if (cached_has_bits & 0x00000004u) { | |||||
| total_size += 1 + | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( | |||||
| this->_internal_preferred_domestic_carrier_code()); | |||||
| } | |||||
| } | |||||
| if (cached_has_bits & 0x000000e0u) { | |||||
| // optional bool italian_leading_zero = 4; | |||||
| if (cached_has_bits & 0x00000020u) { | |||||
| total_size += 1 + 1; | |||||
| } | |||||
| // optional .i18n.phonenumbers.PhoneNumber.CountryCodeSource country_code_source = 6; | |||||
| if (cached_has_bits & 0x00000040u) { | |||||
| total_size += 1 + | |||||
| ::_pbi::WireFormatLite::EnumSize(this->_internal_country_code_source()); | |||||
| } | |||||
| // optional int32 number_of_leading_zeros = 8 [default = 1]; | |||||
| if (cached_has_bits & 0x00000080u) { | |||||
| total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_number_of_leading_zeros()); | |||||
| } | |||||
| } | |||||
| if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { | |||||
| total_size += _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString).size(); | |||||
| } | |||||
| int cached_size = ::_pbi::ToCachedSize(total_size); | |||||
| SetCachedSize(cached_size); | |||||
| return total_size; | |||||
| } | |||||
| void PhoneNumber::CheckTypeAndMergeFrom( | |||||
| const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) { | |||||
| MergeFrom(*::_pbi::DownCast<const PhoneNumber*>( | |||||
| &from)); | |||||
| } | |||||
| void PhoneNumber::MergeFrom(const PhoneNumber& from) { | |||||
| PhoneNumber* const _this = this; | |||||
| // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PhoneNumber) | |||||
| GOOGLE_DCHECK_NE(&from, _this); | |||||
| uint32_t cached_has_bits = 0; | |||||
| (void) cached_has_bits; | |||||
| cached_has_bits = from._impl_._has_bits_[0]; | |||||
| if (cached_has_bits & 0x000000ffu) { | |||||
| if (cached_has_bits & 0x00000001u) { | |||||
| _this->_internal_set_extension(from._internal_extension()); | |||||
| } | |||||
| if (cached_has_bits & 0x00000002u) { | |||||
| _this->_internal_set_raw_input(from._internal_raw_input()); | |||||
| } | |||||
| if (cached_has_bits & 0x00000004u) { | |||||
| _this->_internal_set_preferred_domestic_carrier_code(from._internal_preferred_domestic_carrier_code()); | |||||
| } | |||||
| if (cached_has_bits & 0x00000008u) { | |||||
| _this->_impl_.national_number_ = from._impl_.national_number_; | |||||
| } | |||||
| if (cached_has_bits & 0x00000010u) { | |||||
| _this->_impl_.country_code_ = from._impl_.country_code_; | |||||
| } | |||||
| if (cached_has_bits & 0x00000020u) { | |||||
| _this->_impl_.italian_leading_zero_ = from._impl_.italian_leading_zero_; | |||||
| } | |||||
| if (cached_has_bits & 0x00000040u) { | |||||
| _this->_impl_.country_code_source_ = from._impl_.country_code_source_; | |||||
| } | |||||
| if (cached_has_bits & 0x00000080u) { | |||||
| _this->_impl_.number_of_leading_zeros_ = from._impl_.number_of_leading_zeros_; | |||||
| } | |||||
| _this->_impl_._has_bits_[0] |= cached_has_bits; | |||||
| } | |||||
| _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_); | |||||
| } | |||||
| void PhoneNumber::CopyFrom(const PhoneNumber& from) { | |||||
| // @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PhoneNumber) | |||||
| if (&from == this) return; | |||||
| Clear(); | |||||
| MergeFrom(from); | |||||
| } | |||||
| bool PhoneNumber::IsInitialized() const { | |||||
| if (_Internal::MissingRequiredFields(_impl_._has_bits_)) return false; | |||||
| return true; | |||||
| } | |||||
| void PhoneNumber::InternalSwap(PhoneNumber* other) { | |||||
| using std::swap; | |||||
| auto* lhs_arena = GetArenaForAllocation(); | |||||
| auto* rhs_arena = other->GetArenaForAllocation(); | |||||
| _internal_metadata_.InternalSwap(&other->_internal_metadata_); | |||||
| swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( | |||||
| &_impl_.extension_, lhs_arena, | |||||
| &other->_impl_.extension_, rhs_arena | |||||
| ); | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( | |||||
| &_impl_.raw_input_, lhs_arena, | |||||
| &other->_impl_.raw_input_, rhs_arena | |||||
| ); | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( | |||||
| &_impl_.preferred_domestic_carrier_code_, lhs_arena, | |||||
| &other->_impl_.preferred_domestic_carrier_code_, rhs_arena | |||||
| ); | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::memswap< | |||||
| PROTOBUF_FIELD_OFFSET(PhoneNumber, _impl_.country_code_source_) | |||||
| + sizeof(PhoneNumber::_impl_.country_code_source_) | |||||
| - PROTOBUF_FIELD_OFFSET(PhoneNumber, _impl_.national_number_)>( | |||||
| reinterpret_cast<char*>(&_impl_.national_number_), | |||||
| reinterpret_cast<char*>(&other->_impl_.national_number_)); | |||||
| swap(_impl_.number_of_leading_zeros_, other->_impl_.number_of_leading_zeros_); | |||||
| } | |||||
| std::string PhoneNumber::GetTypeName() const { | |||||
| return "i18n.phonenumbers.PhoneNumber"; | |||||
| } | |||||
| // @@protoc_insertion_point(namespace_scope) | |||||
| } // namespace phonenumbers | |||||
| } // namespace i18n | |||||
| PROTOBUF_NAMESPACE_OPEN | |||||
| template<> PROTOBUF_NOINLINE ::i18n::phonenumbers::PhoneNumber* | |||||
| Arena::CreateMaybeMessage< ::i18n::phonenumbers::PhoneNumber >(Arena* arena) { | |||||
| return Arena::CreateMessageInternal< ::i18n::phonenumbers::PhoneNumber >(arena); | |||||
| } | |||||
| PROTOBUF_NAMESPACE_CLOSE | |||||
| // @@protoc_insertion_point(global_scope) | |||||
| #include <google/protobuf/port_undef.inc> | |||||
| @ -0,0 +1,751 @@ | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: phonenumber.proto | |||||
| #ifndef GOOGLE_PROTOBUF_INCLUDED_phonenumber_2eproto | |||||
| #define GOOGLE_PROTOBUF_INCLUDED_phonenumber_2eproto | |||||
| #include <limits> | |||||
| #include <string> | |||||
| #include <google/protobuf/port_def.inc> | |||||
| #if PROTOBUF_VERSION < 3021000 | |||||
| #error This file was generated by a newer version of protoc which is | |||||
| #error incompatible with your Protocol Buffer headers. Please update | |||||
| #error your headers. | |||||
| #endif | |||||
| #if 3021012 < PROTOBUF_MIN_PROTOC_VERSION | |||||
| #error This file was generated by an older version of protoc which is | |||||
| #error incompatible with your Protocol Buffer headers. Please | |||||
| #error regenerate this file with a newer version of protoc. | |||||
| #endif | |||||
| #include <google/protobuf/port_undef.inc> | |||||
| #include <google/protobuf/io/coded_stream.h> | |||||
| #include <google/protobuf/arena.h> | |||||
| #include <google/protobuf/arenastring.h> | |||||
| #include <google/protobuf/generated_message_util.h> | |||||
| #include <google/protobuf/metadata_lite.h> | |||||
| #include <google/protobuf/message_lite.h> | |||||
| #include <google/protobuf/repeated_field.h> // IWYU pragma: export | |||||
| #include <google/protobuf/extension_set.h> // IWYU pragma: export | |||||
| #include <google/protobuf/generated_enum_util.h> | |||||
| // @@protoc_insertion_point(includes) | |||||
| #include <google/protobuf/port_def.inc> | |||||
| #define PROTOBUF_INTERNAL_EXPORT_phonenumber_2eproto | |||||
| PROTOBUF_NAMESPACE_OPEN | |||||
| namespace internal { | |||||
| class AnyMetadata; | |||||
| } // namespace internal | |||||
| PROTOBUF_NAMESPACE_CLOSE | |||||
| // Internal implementation detail -- do not use these members. | |||||
| struct TableStruct_phonenumber_2eproto { | |||||
| static const uint32_t offsets[]; | |||||
| }; | |||||
| namespace i18n { | |||||
| namespace phonenumbers { | |||||
| class PhoneNumber; | |||||
| struct PhoneNumberDefaultTypeInternal; | |||||
| extern PhoneNumberDefaultTypeInternal _PhoneNumber_default_instance_; | |||||
| } // namespace phonenumbers | |||||
| } // namespace i18n | |||||
| PROTOBUF_NAMESPACE_OPEN | |||||
| template<> ::i18n::phonenumbers::PhoneNumber* Arena::CreateMaybeMessage<::i18n::phonenumbers::PhoneNumber>(Arena*); | |||||
| PROTOBUF_NAMESPACE_CLOSE | |||||
| namespace i18n { | |||||
| namespace phonenumbers { | |||||
| enum PhoneNumber_CountryCodeSource : int { | |||||
| PhoneNumber_CountryCodeSource_UNSPECIFIED = 0, | |||||
| PhoneNumber_CountryCodeSource_FROM_NUMBER_WITH_PLUS_SIGN = 1, | |||||
| PhoneNumber_CountryCodeSource_FROM_NUMBER_WITH_IDD = 5, | |||||
| PhoneNumber_CountryCodeSource_FROM_NUMBER_WITHOUT_PLUS_SIGN = 10, | |||||
| PhoneNumber_CountryCodeSource_FROM_DEFAULT_COUNTRY = 20 | |||||
| }; | |||||
| bool PhoneNumber_CountryCodeSource_IsValid(int value); | |||||
| constexpr PhoneNumber_CountryCodeSource PhoneNumber_CountryCodeSource_CountryCodeSource_MIN = PhoneNumber_CountryCodeSource_UNSPECIFIED; | |||||
| constexpr PhoneNumber_CountryCodeSource PhoneNumber_CountryCodeSource_CountryCodeSource_MAX = PhoneNumber_CountryCodeSource_FROM_DEFAULT_COUNTRY; | |||||
| constexpr int PhoneNumber_CountryCodeSource_CountryCodeSource_ARRAYSIZE = PhoneNumber_CountryCodeSource_CountryCodeSource_MAX + 1; | |||||
| const std::string& PhoneNumber_CountryCodeSource_Name(PhoneNumber_CountryCodeSource value); | |||||
| template<typename T> | |||||
| inline const std::string& PhoneNumber_CountryCodeSource_Name(T enum_t_value) { | |||||
| static_assert(::std::is_same<T, PhoneNumber_CountryCodeSource>::value || | |||||
| ::std::is_integral<T>::value, | |||||
| "Incorrect type passed to function PhoneNumber_CountryCodeSource_Name."); | |||||
| return PhoneNumber_CountryCodeSource_Name(static_cast<PhoneNumber_CountryCodeSource>(enum_t_value)); | |||||
| } | |||||
| bool PhoneNumber_CountryCodeSource_Parse( | |||||
| ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, PhoneNumber_CountryCodeSource* value); | |||||
| // =================================================================== | |||||
| class PhoneNumber final : | |||||
| public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:i18n.phonenumbers.PhoneNumber) */ { | |||||
| public: | |||||
| inline PhoneNumber() : PhoneNumber(nullptr) {} | |||||
| ~PhoneNumber() override; | |||||
| explicit PROTOBUF_CONSTEXPR PhoneNumber(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); | |||||
| PhoneNumber(const PhoneNumber& from); | |||||
| PhoneNumber(PhoneNumber&& from) noexcept | |||||
| : PhoneNumber() { | |||||
| *this = ::std::move(from); | |||||
| } | |||||
| inline PhoneNumber& operator=(const PhoneNumber& from) { | |||||
| CopyFrom(from); | |||||
| return *this; | |||||
| } | |||||
| inline PhoneNumber& operator=(PhoneNumber&& from) noexcept { | |||||
| if (this == &from) return *this; | |||||
| if (GetOwningArena() == from.GetOwningArena() | |||||
| #ifdef PROTOBUF_FORCE_COPY_IN_MOVE | |||||
| && GetOwningArena() != nullptr | |||||
| #endif // !PROTOBUF_FORCE_COPY_IN_MOVE | |||||
| ) { | |||||
| InternalSwap(&from); | |||||
| } else { | |||||
| CopyFrom(from); | |||||
| } | |||||
| return *this; | |||||
| } | |||||
| inline const std::string& unknown_fields() const { | |||||
| return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString); | |||||
| } | |||||
| inline std::string* mutable_unknown_fields() { | |||||
| return _internal_metadata_.mutable_unknown_fields<std::string>(); | |||||
| } | |||||
| static const PhoneNumber& default_instance() { | |||||
| return *internal_default_instance(); | |||||
| } | |||||
| static inline const PhoneNumber* internal_default_instance() { | |||||
| return reinterpret_cast<const PhoneNumber*>( | |||||
| &_PhoneNumber_default_instance_); | |||||
| } | |||||
| static constexpr int kIndexInFileMessages = | |||||
| 0; | |||||
| friend void swap(PhoneNumber& a, PhoneNumber& b) { | |||||
| a.Swap(&b); | |||||
| } | |||||
| inline void Swap(PhoneNumber* other) { | |||||
| if (other == this) return; | |||||
| #ifdef PROTOBUF_FORCE_COPY_IN_SWAP | |||||
| if (GetOwningArena() != nullptr && | |||||
| GetOwningArena() == other->GetOwningArena()) { | |||||
| #else // PROTOBUF_FORCE_COPY_IN_SWAP | |||||
| if (GetOwningArena() == other->GetOwningArena()) { | |||||
| #endif // !PROTOBUF_FORCE_COPY_IN_SWAP | |||||
| InternalSwap(other); | |||||
| } else { | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); | |||||
| } | |||||
| } | |||||
| void UnsafeArenaSwap(PhoneNumber* other) { | |||||
| if (other == this) return; | |||||
| GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); | |||||
| InternalSwap(other); | |||||
| } | |||||
| // implements Message ---------------------------------------------- | |||||
| PhoneNumber* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { | |||||
| return CreateMaybeMessage<PhoneNumber>(arena); | |||||
| } | |||||
| void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from) final; | |||||
| void CopyFrom(const PhoneNumber& from); | |||||
| void MergeFrom(const PhoneNumber& from); | |||||
| PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; | |||||
| bool IsInitialized() const final; | |||||
| size_t ByteSizeLong() const final; | |||||
| const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; | |||||
| uint8_t* _InternalSerialize( | |||||
| uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; | |||||
| int GetCachedSize() const final { return _impl_._cached_size_.Get(); } | |||||
| private: | |||||
| void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); | |||||
| void SharedDtor(); | |||||
| void SetCachedSize(int size) const; | |||||
| void InternalSwap(PhoneNumber* other); | |||||
| private: | |||||
| friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; | |||||
| static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { | |||||
| return "i18n.phonenumbers.PhoneNumber"; | |||||
| } | |||||
| protected: | |||||
| explicit PhoneNumber(::PROTOBUF_NAMESPACE_ID::Arena* arena, | |||||
| bool is_message_owned = false); | |||||
| public: | |||||
| std::string GetTypeName() const final; | |||||
| // nested types ---------------------------------------------------- | |||||
| typedef PhoneNumber_CountryCodeSource CountryCodeSource; | |||||
| static constexpr CountryCodeSource UNSPECIFIED = | |||||
| PhoneNumber_CountryCodeSource_UNSPECIFIED; | |||||
| static constexpr CountryCodeSource FROM_NUMBER_WITH_PLUS_SIGN = | |||||
| PhoneNumber_CountryCodeSource_FROM_NUMBER_WITH_PLUS_SIGN; | |||||
| static constexpr CountryCodeSource FROM_NUMBER_WITH_IDD = | |||||
| PhoneNumber_CountryCodeSource_FROM_NUMBER_WITH_IDD; | |||||
| static constexpr CountryCodeSource FROM_NUMBER_WITHOUT_PLUS_SIGN = | |||||
| PhoneNumber_CountryCodeSource_FROM_NUMBER_WITHOUT_PLUS_SIGN; | |||||
| static constexpr CountryCodeSource FROM_DEFAULT_COUNTRY = | |||||
| PhoneNumber_CountryCodeSource_FROM_DEFAULT_COUNTRY; | |||||
| static inline bool CountryCodeSource_IsValid(int value) { | |||||
| return PhoneNumber_CountryCodeSource_IsValid(value); | |||||
| } | |||||
| static constexpr CountryCodeSource CountryCodeSource_MIN = | |||||
| PhoneNumber_CountryCodeSource_CountryCodeSource_MIN; | |||||
| static constexpr CountryCodeSource CountryCodeSource_MAX = | |||||
| PhoneNumber_CountryCodeSource_CountryCodeSource_MAX; | |||||
| static constexpr int CountryCodeSource_ARRAYSIZE = | |||||
| PhoneNumber_CountryCodeSource_CountryCodeSource_ARRAYSIZE; | |||||
| template<typename T> | |||||
| static inline const std::string& CountryCodeSource_Name(T enum_t_value) { | |||||
| static_assert(::std::is_same<T, CountryCodeSource>::value || | |||||
| ::std::is_integral<T>::value, | |||||
| "Incorrect type passed to function CountryCodeSource_Name."); | |||||
| return PhoneNumber_CountryCodeSource_Name(enum_t_value); | |||||
| } | |||||
| static inline bool CountryCodeSource_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name, | |||||
| CountryCodeSource* value) { | |||||
| return PhoneNumber_CountryCodeSource_Parse(name, value); | |||||
| } | |||||
| // accessors ------------------------------------------------------- | |||||
| enum : int { | |||||
| kExtensionFieldNumber = 3, | |||||
| kRawInputFieldNumber = 5, | |||||
| kPreferredDomesticCarrierCodeFieldNumber = 7, | |||||
| kNationalNumberFieldNumber = 2, | |||||
| kCountryCodeFieldNumber = 1, | |||||
| kItalianLeadingZeroFieldNumber = 4, | |||||
| kCountryCodeSourceFieldNumber = 6, | |||||
| kNumberOfLeadingZerosFieldNumber = 8, | |||||
| }; | |||||
| // optional string extension = 3; | |||||
| bool has_extension() const; | |||||
| private: | |||||
| bool _internal_has_extension() const; | |||||
| public: | |||||
| void clear_extension(); | |||||
| const std::string& extension() const; | |||||
| template <typename ArgT0 = const std::string&, typename... ArgT> | |||||
| void set_extension(ArgT0&& arg0, ArgT... args); | |||||
| std::string* mutable_extension(); | |||||
| PROTOBUF_NODISCARD std::string* release_extension(); | |||||
| void set_allocated_extension(std::string* extension); | |||||
| private: | |||||
| const std::string& _internal_extension() const; | |||||
| inline PROTOBUF_ALWAYS_INLINE void _internal_set_extension(const std::string& value); | |||||
| std::string* _internal_mutable_extension(); | |||||
| public: | |||||
| // optional string raw_input = 5; | |||||
| bool has_raw_input() const; | |||||
| private: | |||||
| bool _internal_has_raw_input() const; | |||||
| public: | |||||
| void clear_raw_input(); | |||||
| const std::string& raw_input() const; | |||||
| template <typename ArgT0 = const std::string&, typename... ArgT> | |||||
| void set_raw_input(ArgT0&& arg0, ArgT... args); | |||||
| std::string* mutable_raw_input(); | |||||
| PROTOBUF_NODISCARD std::string* release_raw_input(); | |||||
| void set_allocated_raw_input(std::string* raw_input); | |||||
| private: | |||||
| const std::string& _internal_raw_input() const; | |||||
| inline PROTOBUF_ALWAYS_INLINE void _internal_set_raw_input(const std::string& value); | |||||
| std::string* _internal_mutable_raw_input(); | |||||
| public: | |||||
| // optional string preferred_domestic_carrier_code = 7; | |||||
| bool has_preferred_domestic_carrier_code() const; | |||||
| private: | |||||
| bool _internal_has_preferred_domestic_carrier_code() const; | |||||
| public: | |||||
| void clear_preferred_domestic_carrier_code(); | |||||
| const std::string& preferred_domestic_carrier_code() const; | |||||
| template <typename ArgT0 = const std::string&, typename... ArgT> | |||||
| void set_preferred_domestic_carrier_code(ArgT0&& arg0, ArgT... args); | |||||
| std::string* mutable_preferred_domestic_carrier_code(); | |||||
| PROTOBUF_NODISCARD std::string* release_preferred_domestic_carrier_code(); | |||||
| void set_allocated_preferred_domestic_carrier_code(std::string* preferred_domestic_carrier_code); | |||||
| private: | |||||
| const std::string& _internal_preferred_domestic_carrier_code() const; | |||||
| inline PROTOBUF_ALWAYS_INLINE void _internal_set_preferred_domestic_carrier_code(const std::string& value); | |||||
| std::string* _internal_mutable_preferred_domestic_carrier_code(); | |||||
| public: | |||||
| // required uint64 national_number = 2; | |||||
| bool has_national_number() const; | |||||
| private: | |||||
| bool _internal_has_national_number() const; | |||||
| public: | |||||
| void clear_national_number(); | |||||
| uint64_t national_number() const; | |||||
| void set_national_number(uint64_t value); | |||||
| private: | |||||
| uint64_t _internal_national_number() const; | |||||
| void _internal_set_national_number(uint64_t value); | |||||
| public: | |||||
| // required int32 country_code = 1; | |||||
| bool has_country_code() const; | |||||
| private: | |||||
| bool _internal_has_country_code() const; | |||||
| public: | |||||
| void clear_country_code(); | |||||
| int32_t country_code() const; | |||||
| void set_country_code(int32_t value); | |||||
| private: | |||||
| int32_t _internal_country_code() const; | |||||
| void _internal_set_country_code(int32_t value); | |||||
| public: | |||||
| // optional bool italian_leading_zero = 4; | |||||
| bool has_italian_leading_zero() const; | |||||
| private: | |||||
| bool _internal_has_italian_leading_zero() const; | |||||
| public: | |||||
| void clear_italian_leading_zero(); | |||||
| bool italian_leading_zero() const; | |||||
| void set_italian_leading_zero(bool value); | |||||
| private: | |||||
| bool _internal_italian_leading_zero() const; | |||||
| void _internal_set_italian_leading_zero(bool value); | |||||
| public: | |||||
| // optional .i18n.phonenumbers.PhoneNumber.CountryCodeSource country_code_source = 6; | |||||
| bool has_country_code_source() const; | |||||
| private: | |||||
| bool _internal_has_country_code_source() const; | |||||
| public: | |||||
| void clear_country_code_source(); | |||||
| ::i18n::phonenumbers::PhoneNumber_CountryCodeSource country_code_source() const; | |||||
| void set_country_code_source(::i18n::phonenumbers::PhoneNumber_CountryCodeSource value); | |||||
| private: | |||||
| ::i18n::phonenumbers::PhoneNumber_CountryCodeSource _internal_country_code_source() const; | |||||
| void _internal_set_country_code_source(::i18n::phonenumbers::PhoneNumber_CountryCodeSource value); | |||||
| public: | |||||
| // optional int32 number_of_leading_zeros = 8 [default = 1]; | |||||
| bool has_number_of_leading_zeros() const; | |||||
| private: | |||||
| bool _internal_has_number_of_leading_zeros() const; | |||||
| public: | |||||
| void clear_number_of_leading_zeros(); | |||||
| int32_t number_of_leading_zeros() const; | |||||
| void set_number_of_leading_zeros(int32_t value); | |||||
| private: | |||||
| int32_t _internal_number_of_leading_zeros() const; | |||||
| void _internal_set_number_of_leading_zeros(int32_t value); | |||||
| public: | |||||
| // @@protoc_insertion_point(class_scope:i18n.phonenumbers.PhoneNumber) | |||||
| private: | |||||
| class _Internal; | |||||
| // helper for ByteSizeLong() | |||||
| size_t RequiredFieldsByteSizeFallback() const; | |||||
| template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; | |||||
| typedef void InternalArenaConstructable_; | |||||
| typedef void DestructorSkippable_; | |||||
| struct Impl_ { | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; | |||||
| mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr extension_; | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr raw_input_; | |||||
| ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr preferred_domestic_carrier_code_; | |||||
| uint64_t national_number_; | |||||
| int32_t country_code_; | |||||
| bool italian_leading_zero_; | |||||
| int country_code_source_; | |||||
| int32_t number_of_leading_zeros_; | |||||
| }; | |||||
| union { Impl_ _impl_; }; | |||||
| friend struct ::TableStruct_phonenumber_2eproto; | |||||
| }; | |||||
| // =================================================================== | |||||
| // =================================================================== | |||||
| #ifdef __GNUC__ | |||||
| #pragma GCC diagnostic push | |||||
| #pragma GCC diagnostic ignored "-Wstrict-aliasing" | |||||
| #endif // __GNUC__ | |||||
| // PhoneNumber | |||||
| // required int32 country_code = 1; | |||||
| inline bool PhoneNumber::_internal_has_country_code() const { | |||||
| bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0; | |||||
| return value; | |||||
| } | |||||
| inline bool PhoneNumber::has_country_code() const { | |||||
| return _internal_has_country_code(); | |||||
| } | |||||
| inline void PhoneNumber::clear_country_code() { | |||||
| _impl_.country_code_ = 0; | |||||
| _impl_._has_bits_[0] &= ~0x00000010u; | |||||
| } | |||||
| inline int32_t PhoneNumber::_internal_country_code() const { | |||||
| return _impl_.country_code_; | |||||
| } | |||||
| inline int32_t PhoneNumber::country_code() const { | |||||
| // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumber.country_code) | |||||
| return _internal_country_code(); | |||||
| } | |||||
| inline void PhoneNumber::_internal_set_country_code(int32_t value) { | |||||
| _impl_._has_bits_[0] |= 0x00000010u; | |||||
| _impl_.country_code_ = value; | |||||
| } | |||||
| inline void PhoneNumber::set_country_code(int32_t value) { | |||||
| _internal_set_country_code(value); | |||||
| // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumber.country_code) | |||||
| } | |||||
| // required uint64 national_number = 2; | |||||
| inline bool PhoneNumber::_internal_has_national_number() const { | |||||
| bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; | |||||
| return value; | |||||
| } | |||||
| inline bool PhoneNumber::has_national_number() const { | |||||
| return _internal_has_national_number(); | |||||
| } | |||||
| inline void PhoneNumber::clear_national_number() { | |||||
| _impl_.national_number_ = uint64_t{0u}; | |||||
| _impl_._has_bits_[0] &= ~0x00000008u; | |||||
| } | |||||
| inline uint64_t PhoneNumber::_internal_national_number() const { | |||||
| return _impl_.national_number_; | |||||
| } | |||||
| inline uint64_t PhoneNumber::national_number() const { | |||||
| // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumber.national_number) | |||||
| return _internal_national_number(); | |||||
| } | |||||
| inline void PhoneNumber::_internal_set_national_number(uint64_t value) { | |||||
| _impl_._has_bits_[0] |= 0x00000008u; | |||||
| _impl_.national_number_ = value; | |||||
| } | |||||
| inline void PhoneNumber::set_national_number(uint64_t value) { | |||||
| _internal_set_national_number(value); | |||||
| // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumber.national_number) | |||||
| } | |||||
| // optional string extension = 3; | |||||
| inline bool PhoneNumber::_internal_has_extension() const { | |||||
| bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; | |||||
| return value; | |||||
| } | |||||
| inline bool PhoneNumber::has_extension() const { | |||||
| return _internal_has_extension(); | |||||
| } | |||||
| inline void PhoneNumber::clear_extension() { | |||||
| _impl_.extension_.ClearToEmpty(); | |||||
| _impl_._has_bits_[0] &= ~0x00000001u; | |||||
| } | |||||
| inline const std::string& PhoneNumber::extension() const { | |||||
| // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumber.extension) | |||||
| return _internal_extension(); | |||||
| } | |||||
| template <typename ArgT0, typename... ArgT> | |||||
| inline PROTOBUF_ALWAYS_INLINE | |||||
| void PhoneNumber::set_extension(ArgT0&& arg0, ArgT... args) { | |||||
| _impl_._has_bits_[0] |= 0x00000001u; | |||||
| _impl_.extension_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation()); | |||||
| // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumber.extension) | |||||
| } | |||||
| inline std::string* PhoneNumber::mutable_extension() { | |||||
| std::string* _s = _internal_mutable_extension(); | |||||
| // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneNumber.extension) | |||||
| return _s; | |||||
| } | |||||
| inline const std::string& PhoneNumber::_internal_extension() const { | |||||
| return _impl_.extension_.Get(); | |||||
| } | |||||
| inline void PhoneNumber::_internal_set_extension(const std::string& value) { | |||||
| _impl_._has_bits_[0] |= 0x00000001u; | |||||
| _impl_.extension_.Set(value, GetArenaForAllocation()); | |||||
| } | |||||
| inline std::string* PhoneNumber::_internal_mutable_extension() { | |||||
| _impl_._has_bits_[0] |= 0x00000001u; | |||||
| return _impl_.extension_.Mutable(GetArenaForAllocation()); | |||||
| } | |||||
| inline std::string* PhoneNumber::release_extension() { | |||||
| // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneNumber.extension) | |||||
| if (!_internal_has_extension()) { | |||||
| return nullptr; | |||||
| } | |||||
| _impl_._has_bits_[0] &= ~0x00000001u; | |||||
| auto* p = _impl_.extension_.Release(); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| if (_impl_.extension_.IsDefault()) { | |||||
| _impl_.extension_.Set("", GetArenaForAllocation()); | |||||
| } | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| return p; | |||||
| } | |||||
| inline void PhoneNumber::set_allocated_extension(std::string* extension) { | |||||
| if (extension != nullptr) { | |||||
| _impl_._has_bits_[0] |= 0x00000001u; | |||||
| } else { | |||||
| _impl_._has_bits_[0] &= ~0x00000001u; | |||||
| } | |||||
| _impl_.extension_.SetAllocated(extension, GetArenaForAllocation()); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| if (_impl_.extension_.IsDefault()) { | |||||
| _impl_.extension_.Set("", GetArenaForAllocation()); | |||||
| } | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneNumber.extension) | |||||
| } | |||||
| // optional bool italian_leading_zero = 4; | |||||
| inline bool PhoneNumber::_internal_has_italian_leading_zero() const { | |||||
| bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0; | |||||
| return value; | |||||
| } | |||||
| inline bool PhoneNumber::has_italian_leading_zero() const { | |||||
| return _internal_has_italian_leading_zero(); | |||||
| } | |||||
| inline void PhoneNumber::clear_italian_leading_zero() { | |||||
| _impl_.italian_leading_zero_ = false; | |||||
| _impl_._has_bits_[0] &= ~0x00000020u; | |||||
| } | |||||
| inline bool PhoneNumber::_internal_italian_leading_zero() const { | |||||
| return _impl_.italian_leading_zero_; | |||||
| } | |||||
| inline bool PhoneNumber::italian_leading_zero() const { | |||||
| // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumber.italian_leading_zero) | |||||
| return _internal_italian_leading_zero(); | |||||
| } | |||||
| inline void PhoneNumber::_internal_set_italian_leading_zero(bool value) { | |||||
| _impl_._has_bits_[0] |= 0x00000020u; | |||||
| _impl_.italian_leading_zero_ = value; | |||||
| } | |||||
| inline void PhoneNumber::set_italian_leading_zero(bool value) { | |||||
| _internal_set_italian_leading_zero(value); | |||||
| // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumber.italian_leading_zero) | |||||
| } | |||||
| // optional int32 number_of_leading_zeros = 8 [default = 1]; | |||||
| inline bool PhoneNumber::_internal_has_number_of_leading_zeros() const { | |||||
| bool value = (_impl_._has_bits_[0] & 0x00000080u) != 0; | |||||
| return value; | |||||
| } | |||||
| inline bool PhoneNumber::has_number_of_leading_zeros() const { | |||||
| return _internal_has_number_of_leading_zeros(); | |||||
| } | |||||
| inline void PhoneNumber::clear_number_of_leading_zeros() { | |||||
| _impl_.number_of_leading_zeros_ = 1; | |||||
| _impl_._has_bits_[0] &= ~0x00000080u; | |||||
| } | |||||
| inline int32_t PhoneNumber::_internal_number_of_leading_zeros() const { | |||||
| return _impl_.number_of_leading_zeros_; | |||||
| } | |||||
| inline int32_t PhoneNumber::number_of_leading_zeros() const { | |||||
| // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumber.number_of_leading_zeros) | |||||
| return _internal_number_of_leading_zeros(); | |||||
| } | |||||
| inline void PhoneNumber::_internal_set_number_of_leading_zeros(int32_t value) { | |||||
| _impl_._has_bits_[0] |= 0x00000080u; | |||||
| _impl_.number_of_leading_zeros_ = value; | |||||
| } | |||||
| inline void PhoneNumber::set_number_of_leading_zeros(int32_t value) { | |||||
| _internal_set_number_of_leading_zeros(value); | |||||
| // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumber.number_of_leading_zeros) | |||||
| } | |||||
| // optional string raw_input = 5; | |||||
| inline bool PhoneNumber::_internal_has_raw_input() const { | |||||
| bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; | |||||
| return value; | |||||
| } | |||||
| inline bool PhoneNumber::has_raw_input() const { | |||||
| return _internal_has_raw_input(); | |||||
| } | |||||
| inline void PhoneNumber::clear_raw_input() { | |||||
| _impl_.raw_input_.ClearToEmpty(); | |||||
| _impl_._has_bits_[0] &= ~0x00000002u; | |||||
| } | |||||
| inline const std::string& PhoneNumber::raw_input() const { | |||||
| // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumber.raw_input) | |||||
| return _internal_raw_input(); | |||||
| } | |||||
| template <typename ArgT0, typename... ArgT> | |||||
| inline PROTOBUF_ALWAYS_INLINE | |||||
| void PhoneNumber::set_raw_input(ArgT0&& arg0, ArgT... args) { | |||||
| _impl_._has_bits_[0] |= 0x00000002u; | |||||
| _impl_.raw_input_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation()); | |||||
| // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumber.raw_input) | |||||
| } | |||||
| inline std::string* PhoneNumber::mutable_raw_input() { | |||||
| std::string* _s = _internal_mutable_raw_input(); | |||||
| // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneNumber.raw_input) | |||||
| return _s; | |||||
| } | |||||
| inline const std::string& PhoneNumber::_internal_raw_input() const { | |||||
| return _impl_.raw_input_.Get(); | |||||
| } | |||||
| inline void PhoneNumber::_internal_set_raw_input(const std::string& value) { | |||||
| _impl_._has_bits_[0] |= 0x00000002u; | |||||
| _impl_.raw_input_.Set(value, GetArenaForAllocation()); | |||||
| } | |||||
| inline std::string* PhoneNumber::_internal_mutable_raw_input() { | |||||
| _impl_._has_bits_[0] |= 0x00000002u; | |||||
| return _impl_.raw_input_.Mutable(GetArenaForAllocation()); | |||||
| } | |||||
| inline std::string* PhoneNumber::release_raw_input() { | |||||
| // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneNumber.raw_input) | |||||
| if (!_internal_has_raw_input()) { | |||||
| return nullptr; | |||||
| } | |||||
| _impl_._has_bits_[0] &= ~0x00000002u; | |||||
| auto* p = _impl_.raw_input_.Release(); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| if (_impl_.raw_input_.IsDefault()) { | |||||
| _impl_.raw_input_.Set("", GetArenaForAllocation()); | |||||
| } | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| return p; | |||||
| } | |||||
| inline void PhoneNumber::set_allocated_raw_input(std::string* raw_input) { | |||||
| if (raw_input != nullptr) { | |||||
| _impl_._has_bits_[0] |= 0x00000002u; | |||||
| } else { | |||||
| _impl_._has_bits_[0] &= ~0x00000002u; | |||||
| } | |||||
| _impl_.raw_input_.SetAllocated(raw_input, GetArenaForAllocation()); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| if (_impl_.raw_input_.IsDefault()) { | |||||
| _impl_.raw_input_.Set("", GetArenaForAllocation()); | |||||
| } | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneNumber.raw_input) | |||||
| } | |||||
| // optional .i18n.phonenumbers.PhoneNumber.CountryCodeSource country_code_source = 6; | |||||
| inline bool PhoneNumber::_internal_has_country_code_source() const { | |||||
| bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0; | |||||
| return value; | |||||
| } | |||||
| inline bool PhoneNumber::has_country_code_source() const { | |||||
| return _internal_has_country_code_source(); | |||||
| } | |||||
| inline void PhoneNumber::clear_country_code_source() { | |||||
| _impl_.country_code_source_ = 0; | |||||
| _impl_._has_bits_[0] &= ~0x00000040u; | |||||
| } | |||||
| inline ::i18n::phonenumbers::PhoneNumber_CountryCodeSource PhoneNumber::_internal_country_code_source() const { | |||||
| return static_cast< ::i18n::phonenumbers::PhoneNumber_CountryCodeSource >(_impl_.country_code_source_); | |||||
| } | |||||
| inline ::i18n::phonenumbers::PhoneNumber_CountryCodeSource PhoneNumber::country_code_source() const { | |||||
| // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumber.country_code_source) | |||||
| return _internal_country_code_source(); | |||||
| } | |||||
| inline void PhoneNumber::_internal_set_country_code_source(::i18n::phonenumbers::PhoneNumber_CountryCodeSource value) { | |||||
| assert(::i18n::phonenumbers::PhoneNumber_CountryCodeSource_IsValid(value)); | |||||
| _impl_._has_bits_[0] |= 0x00000040u; | |||||
| _impl_.country_code_source_ = value; | |||||
| } | |||||
| inline void PhoneNumber::set_country_code_source(::i18n::phonenumbers::PhoneNumber_CountryCodeSource value) { | |||||
| _internal_set_country_code_source(value); | |||||
| // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumber.country_code_source) | |||||
| } | |||||
| // optional string preferred_domestic_carrier_code = 7; | |||||
| inline bool PhoneNumber::_internal_has_preferred_domestic_carrier_code() const { | |||||
| bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; | |||||
| return value; | |||||
| } | |||||
| inline bool PhoneNumber::has_preferred_domestic_carrier_code() const { | |||||
| return _internal_has_preferred_domestic_carrier_code(); | |||||
| } | |||||
| inline void PhoneNumber::clear_preferred_domestic_carrier_code() { | |||||
| _impl_.preferred_domestic_carrier_code_.ClearToEmpty(); | |||||
| _impl_._has_bits_[0] &= ~0x00000004u; | |||||
| } | |||||
| inline const std::string& PhoneNumber::preferred_domestic_carrier_code() const { | |||||
| // @@protoc_insertion_point(field_get:i18n.phonenumbers.PhoneNumber.preferred_domestic_carrier_code) | |||||
| return _internal_preferred_domestic_carrier_code(); | |||||
| } | |||||
| template <typename ArgT0, typename... ArgT> | |||||
| inline PROTOBUF_ALWAYS_INLINE | |||||
| void PhoneNumber::set_preferred_domestic_carrier_code(ArgT0&& arg0, ArgT... args) { | |||||
| _impl_._has_bits_[0] |= 0x00000004u; | |||||
| _impl_.preferred_domestic_carrier_code_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation()); | |||||
| // @@protoc_insertion_point(field_set:i18n.phonenumbers.PhoneNumber.preferred_domestic_carrier_code) | |||||
| } | |||||
| inline std::string* PhoneNumber::mutable_preferred_domestic_carrier_code() { | |||||
| std::string* _s = _internal_mutable_preferred_domestic_carrier_code(); | |||||
| // @@protoc_insertion_point(field_mutable:i18n.phonenumbers.PhoneNumber.preferred_domestic_carrier_code) | |||||
| return _s; | |||||
| } | |||||
| inline const std::string& PhoneNumber::_internal_preferred_domestic_carrier_code() const { | |||||
| return _impl_.preferred_domestic_carrier_code_.Get(); | |||||
| } | |||||
| inline void PhoneNumber::_internal_set_preferred_domestic_carrier_code(const std::string& value) { | |||||
| _impl_._has_bits_[0] |= 0x00000004u; | |||||
| _impl_.preferred_domestic_carrier_code_.Set(value, GetArenaForAllocation()); | |||||
| } | |||||
| inline std::string* PhoneNumber::_internal_mutable_preferred_domestic_carrier_code() { | |||||
| _impl_._has_bits_[0] |= 0x00000004u; | |||||
| return _impl_.preferred_domestic_carrier_code_.Mutable(GetArenaForAllocation()); | |||||
| } | |||||
| inline std::string* PhoneNumber::release_preferred_domestic_carrier_code() { | |||||
| // @@protoc_insertion_point(field_release:i18n.phonenumbers.PhoneNumber.preferred_domestic_carrier_code) | |||||
| if (!_internal_has_preferred_domestic_carrier_code()) { | |||||
| return nullptr; | |||||
| } | |||||
| _impl_._has_bits_[0] &= ~0x00000004u; | |||||
| auto* p = _impl_.preferred_domestic_carrier_code_.Release(); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| if (_impl_.preferred_domestic_carrier_code_.IsDefault()) { | |||||
| _impl_.preferred_domestic_carrier_code_.Set("", GetArenaForAllocation()); | |||||
| } | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| return p; | |||||
| } | |||||
| inline void PhoneNumber::set_allocated_preferred_domestic_carrier_code(std::string* preferred_domestic_carrier_code) { | |||||
| if (preferred_domestic_carrier_code != nullptr) { | |||||
| _impl_._has_bits_[0] |= 0x00000004u; | |||||
| } else { | |||||
| _impl_._has_bits_[0] &= ~0x00000004u; | |||||
| } | |||||
| _impl_.preferred_domestic_carrier_code_.SetAllocated(preferred_domestic_carrier_code, GetArenaForAllocation()); | |||||
| #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| if (_impl_.preferred_domestic_carrier_code_.IsDefault()) { | |||||
| _impl_.preferred_domestic_carrier_code_.Set("", GetArenaForAllocation()); | |||||
| } | |||||
| #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING | |||||
| // @@protoc_insertion_point(field_set_allocated:i18n.phonenumbers.PhoneNumber.preferred_domestic_carrier_code) | |||||
| } | |||||
| #ifdef __GNUC__ | |||||
| #pragma GCC diagnostic pop | |||||
| #endif // __GNUC__ | |||||
| // @@protoc_insertion_point(namespace_scope) | |||||
| } // namespace phonenumbers | |||||
| } // namespace i18n | |||||
| PROTOBUF_NAMESPACE_OPEN | |||||
| template <> struct is_proto_enum< ::i18n::phonenumbers::PhoneNumber_CountryCodeSource> : ::std::true_type {}; | |||||
| PROTOBUF_NAMESPACE_CLOSE | |||||
| // @@protoc_insertion_point(global_scope) | |||||
| #include <google/protobuf/port_undef.inc> | |||||
| #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_phonenumber_2eproto | |||||
| @ -0,0 +1,285 @@ | |||||
| // Copyright (C) 2012 The Libphonenumber Authors | |||||
| // | |||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| // you may not use this file except in compliance with the License. | |||||
| // You may obtain a copy of the License at | |||||
| // | |||||
| // http://www.apache.org/licenses/LICENSE-2.0 | |||||
| // | |||||
| // Unless required by applicable law or agreed to in writing, software | |||||
| // distributed under the License is distributed on an "AS IS" BASIS, | |||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| // See the License for the specific language governing permissions and | |||||
| // limitations under the License. | |||||
| // | |||||
| // This file is generated automatically, do not edit it manually. | |||||
| #include "phonenumbers/geocoding/geocoding_test_data.h" | |||||
| #include <cstdint> | |||||
| namespace i18n { | |||||
| namespace phonenumbers { | |||||
| namespace { | |||||
| const int32_t prefix_1_de_prefixes[] = { | |||||
| 1201, | |||||
| 1650, | |||||
| }; | |||||
| const char* prefix_1_de_descriptions[] = { | |||||
| "New Jersey", | |||||
| "Kalifornien", | |||||
| }; | |||||
| const int32_t prefix_1_de_possible_lengths[] = { | |||||
| 4, | |||||
| }; | |||||
| const PrefixDescriptions prefix_1_de = { | |||||
| prefix_1_de_prefixes, | |||||
| sizeof(prefix_1_de_prefixes)/sizeof(*prefix_1_de_prefixes), | |||||
| prefix_1_de_descriptions, | |||||
| prefix_1_de_possible_lengths, | |||||
| sizeof(prefix_1_de_possible_lengths)/sizeof(*prefix_1_de_possible_lengths), | |||||
| }; | |||||
| const int32_t prefix_1_en_prefixes[] = { | |||||
| 1201, | |||||
| 1212, | |||||
| 1650, | |||||
| 1989, | |||||
| 1212812, | |||||
| 1617423, | |||||
| 1650960, | |||||
| }; | |||||
| const char* prefix_1_en_descriptions[] = { | |||||
| "NJ", | |||||
| "NY", | |||||
| "CA", | |||||
| "MA", | |||||
| "New York, NY", | |||||
| "Boston, MA", | |||||
| "Mountain View, CA", | |||||
| }; | |||||
| const int32_t prefix_1_en_possible_lengths[] = { | |||||
| 4, 7, | |||||
| }; | |||||
| const PrefixDescriptions prefix_1_en = { | |||||
| prefix_1_en_prefixes, | |||||
| sizeof(prefix_1_en_prefixes)/sizeof(*prefix_1_en_prefixes), | |||||
| prefix_1_en_descriptions, | |||||
| prefix_1_en_possible_lengths, | |||||
| sizeof(prefix_1_en_possible_lengths)/sizeof(*prefix_1_en_possible_lengths), | |||||
| }; | |||||
| const int32_t prefix_54_en_prefixes[] = { | |||||
| 542214, | |||||
| }; | |||||
| const char* prefix_54_en_descriptions[] = { | |||||
| "La Plata", | |||||
| }; | |||||
| const int32_t prefix_54_en_possible_lengths[] = { | |||||
| 6, | |||||
| }; | |||||
| const PrefixDescriptions prefix_54_en = { | |||||
| prefix_54_en_prefixes, | |||||
| sizeof(prefix_54_en_prefixes)/sizeof(*prefix_54_en_prefixes), | |||||
| prefix_54_en_descriptions, | |||||
| prefix_54_en_possible_lengths, | |||||
| sizeof(prefix_54_en_possible_lengths)/sizeof(*prefix_54_en_possible_lengths), | |||||
| }; | |||||
| const int32_t prefix_82_en_prefixes[] = { | |||||
| 822, | |||||
| 8210, | |||||
| 8231, | |||||
| 8232, | |||||
| 8233, | |||||
| 8241, | |||||
| 8242, | |||||
| 8243, | |||||
| 8251, | |||||
| 8252, | |||||
| 8253, | |||||
| 8254, | |||||
| 8255, | |||||
| 8261, | |||||
| 8262, | |||||
| 8263, | |||||
| 8264, | |||||
| }; | |||||
| const char* prefix_82_en_descriptions[] = { | |||||
| "Seoul", | |||||
| "Mobile prefix, should not be geocoded.", | |||||
| "Gyeonggi", | |||||
| "Incheon", | |||||
| "Gangwon", | |||||
| "Chungnam", | |||||
| "Daejeon", | |||||
| "Chungbuk", | |||||
| "Busan", | |||||
| "Ulsan", | |||||
| "Daegu", | |||||
| "Gyeongbuk", | |||||
| "Gyeongnam", | |||||
| "Jeonnam", | |||||
| "Gwangju", | |||||
| "Jeonbuk", | |||||
| "Jeju", | |||||
| }; | |||||
| const int32_t prefix_82_en_possible_lengths[] = { | |||||
| 3, 4, | |||||
| }; | |||||
| const PrefixDescriptions prefix_82_en = { | |||||
| prefix_82_en_prefixes, | |||||
| sizeof(prefix_82_en_prefixes)/sizeof(*prefix_82_en_prefixes), | |||||
| prefix_82_en_descriptions, | |||||
| prefix_82_en_possible_lengths, | |||||
| sizeof(prefix_82_en_possible_lengths)/sizeof(*prefix_82_en_possible_lengths), | |||||
| }; | |||||
| const int32_t prefix_82_ko_prefixes[] = { | |||||
| 822, | |||||
| 8231, | |||||
| 8232, | |||||
| 8233, | |||||
| 8241, | |||||
| 8242, | |||||
| 8243, | |||||
| 8251, | |||||
| 8252, | |||||
| 8253, | |||||
| 8254, | |||||
| 8255, | |||||
| 8261, | |||||
| 8262, | |||||
| 8263, | |||||
| }; | |||||
| const char* prefix_82_ko_descriptions[] = { | |||||
| "\xec""\x84""\x9c""\xec""\x9a""\xb8", | |||||
| "\xea""\xb2""\xbd""\xea""\xb8""\xb0", | |||||
| "\xec""\x9d""\xb8""\xec""\xb2""\x9c", | |||||
| "\xea""\xb0""\x95""\xec""\x9b""\x90", | |||||
| "\xec""\xb6""\xa9""\xeb""\x82""\xa8", | |||||
| "\xeb""\x8c""\x80""\xec""\xa0""\x84", | |||||
| "\xec""\xb6""\xa9""\xeb""\xb6""\x81", | |||||
| "\xeb""\xb6""\x80""\xec""\x82""\xb0", | |||||
| "\xec""\x9a""\xb8""\xec""\x82""\xb0", | |||||
| "\xeb""\x8c""\x80""\xea""\xb5""\xac", | |||||
| "\xea""\xb2""\xbd""\xeb""\xb6""\x81", | |||||
| "\xea""\xb2""\xbd""\xeb""\x82""\xa8", | |||||
| "\xec""\xa0""\x84""\xeb""\x82""\xa8", | |||||
| "\xea""\xb4""\x91""\xec""\xa3""\xbc", | |||||
| "\xec""\xa0""\x84""\xeb""\xb6""\x81", | |||||
| }; | |||||
| const int32_t prefix_82_ko_possible_lengths[] = { | |||||
| 3, 4, | |||||
| }; | |||||
| const PrefixDescriptions prefix_82_ko = { | |||||
| prefix_82_ko_prefixes, | |||||
| sizeof(prefix_82_ko_prefixes)/sizeof(*prefix_82_ko_prefixes), | |||||
| prefix_82_ko_descriptions, | |||||
| prefix_82_ko_possible_lengths, | |||||
| sizeof(prefix_82_ko_possible_lengths)/sizeof(*prefix_82_ko_possible_lengths), | |||||
| }; | |||||
| const char* prefix_language_code_pairs[] = { | |||||
| "1_de", | |||||
| "1_en", | |||||
| "54_en", | |||||
| "82_en", | |||||
| "82_ko", | |||||
| }; | |||||
| const PrefixDescriptions* prefixes_descriptions[] = { | |||||
| &prefix_1_de, | |||||
| &prefix_1_en, | |||||
| &prefix_54_en, | |||||
| &prefix_82_en, | |||||
| &prefix_82_ko, | |||||
| }; | |||||
| const char* country_1[] = { | |||||
| "de", | |||||
| "en", | |||||
| }; | |||||
| const CountryLanguages country_1_languages = { | |||||
| country_1, | |||||
| sizeof(country_1)/sizeof(*country_1), | |||||
| }; | |||||
| const char* country_54[] = { | |||||
| "en", | |||||
| }; | |||||
| const CountryLanguages country_54_languages = { | |||||
| country_54, | |||||
| sizeof(country_54)/sizeof(*country_54), | |||||
| }; | |||||
| const char* country_82[] = { | |||||
| "en", | |||||
| "ko", | |||||
| }; | |||||
| const CountryLanguages country_82_languages = { | |||||
| country_82, | |||||
| sizeof(country_82)/sizeof(*country_82), | |||||
| }; | |||||
| const CountryLanguages* countries_languages[] = { | |||||
| &country_1_languages, | |||||
| &country_54_languages, | |||||
| &country_82_languages, | |||||
| }; | |||||
| const int country_calling_codes[] = { | |||||
| 1, | |||||
| 54, | |||||
| 82, | |||||
| }; | |||||
| } // namespace | |||||
| const int* get_test_country_calling_codes() { | |||||
| return country_calling_codes; | |||||
| } | |||||
| int get_test_country_calling_codes_size() { | |||||
| return sizeof(country_calling_codes) | |||||
| /sizeof(*country_calling_codes); | |||||
| } | |||||
| const CountryLanguages* get_test_country_languages(int index) { | |||||
| return countries_languages[index]; | |||||
| } | |||||
| const char** get_test_prefix_language_code_pairs() { | |||||
| return prefix_language_code_pairs; | |||||
| } | |||||
| int get_test_prefix_language_code_pairs_size() { | |||||
| return sizeof(prefix_language_code_pairs) | |||||
| /sizeof(*prefix_language_code_pairs); | |||||
| } | |||||
| const PrefixDescriptions* get_test_prefix_descriptions(int index) { | |||||
| return prefixes_descriptions[index]; | |||||
| } | |||||
| } // namespace phonenumbers | |||||
| } // namespace i18n | |||||
| @ -0,0 +1,66 @@ | |||||
| /* | |||||
| * Copyright (C) 2024 The Libphonenumber Authors | |||||
| * | |||||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| * you may not use this file except in compliance with the License. | |||||
| * You may obtain a copy of the License at | |||||
| * | |||||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||||
| * | |||||
| * Unless required by applicable law or agreed to in writing, software | |||||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| * See the License for the specific language governing permissions and | |||||
| * limitations under the License. | |||||
| */ | |||||
| package com.google.i18n.phonenumbers; | |||||
| /** Options for the phone number parser. */ | |||||
| public class ParsingOptions { | |||||
| private boolean hasDefaultRegion; | |||||
| /** | |||||
| * The region we are expecting the number to be from. This is ignored if the number being | |||||
| * parsed is written in international format. In case of national format, the country_code will be | |||||
| * set to the one of this default region. If the number is guaranteed to start with a '+' followed | |||||
| * by the country calling code, then RegionCode.ZZ or null can be supplied. | |||||
| */ | |||||
| private String defaultRegion_ = null; | |||||
| public boolean hasDefaultRegion() { return hasDefaultRegion; } | |||||
| /** | |||||
| * Returns the value of {@link #defaultRegion_}. | |||||
| */ | |||||
| public String getDefaultRegion() { return defaultRegion_; } | |||||
| /** | |||||
| * Sets the {@link #defaultRegion_} to the given value. | |||||
| */ | |||||
| public ParsingOptions setDefaultRegion(String value) { | |||||
| hasDefaultRegion = (value != null); | |||||
| defaultRegion_ = value; | |||||
| return this; | |||||
| } | |||||
| /** | |||||
| * Whether the raw input should be kept in the PhoneNumber object. If true, the raw_input | |||||
| * field and country_code_source fields will be populated. | |||||
| */ | |||||
| private boolean hasKeepRawInput; | |||||
| private boolean keepRawInput_ = false; | |||||
| /** | |||||
| * Returns the value of {@link #hasKeepRawInput}. | |||||
| */ | |||||
| public boolean hasKeepRawInput() { return hasKeepRawInput; } | |||||
| /** | |||||
| * Returns the value of {@link #keepRawInput_}. | |||||
| */ | |||||
| public boolean isKeepRawInput() { return keepRawInput_; } | |||||
| /** | |||||
| * Decides with the given value if it should keep the raw input. | |||||
| */ | |||||
| public ParsingOptions setKeepRawInput(boolean value) { | |||||
| hasKeepRawInput = true; | |||||
| keepRawInput_ = value; | |||||
| return this; | |||||
| } | |||||
| } | |||||
| @ -1 +1,4 @@ | |||||
| Code changes: | |||||
| - Introduced new function parseWithOptions to customize the parser's behaviour | |||||
| - Deprecated parseAndKeepRawInput in favor of parseWithOptions | |||||
| - | |||||