#include "components/autofill/core/browser/data_model/address.h"
#include <stddef.h>
#include <algorithm>
#include <memory>
#include "base/check_op.h"
#include "base/containers/contains.h"
#include "base/feature_list.h"
#include "base/i18n/case_conversion.h"
#include "base/notreached.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "components/autofill/core/browser/autofill_data_util.h"
#include "components/autofill/core/browser/autofill_field.h"
#include "components/autofill/core/browser/autofill_type.h"
#include "components/autofill/core/browser/data_model/autofill_profile.h"
#include "components/autofill/core/browser/data_model/autofill_profile_comparator.h"
#include "components/autofill/core/browser/data_model/autofill_structured_address_component.h"
#include "components/autofill/core/browser/data_model/autofill_structured_address_utils.h"
#include "components/autofill/core/browser/field_types.h"
#include "components/autofill/core/browser/geo/autofill_country.h"
#include "components/autofill/core/browser/geo/country_names.h"
#include "components/autofill/core/browser/geo/state_names.h"
#include "components/autofill/core/common/autofill_features.h"
#include "components/autofill/core/common/autofill_l10n_util.h"
namespace autofill {
Address::Address(AddressCountryCode country_code)
: … { … }
Address::~Address() = default;
Address::Address(const Address& address) { … }
Address& Address::operator=(const Address& address) { … }
bool Address::operator==(const Address& other) const { … }
bool Address::FinalizeAfterImport() { … }
bool Address::MergeStructuredAddress(const Address& newer,
bool newer_was_more_recently_used) { … }
std::optional<AlternativeStateNameMap::CanonicalStateName>
Address::GetCanonicalizedStateName() const { … }
bool Address::IsStructuredAddressMergeable(const Address& newer) const { … }
bool Address::IsStructuredAddressMergeableForType(FieldType type,
const Address& other) const { … }
const AddressComponent& Address::GetRoot() const { … }
AddressComponent* Address::Root() { … }
AddressCountryCode Address::GetAddressCountryCode() const { … }
std::u16string Address::GetRawInfo(FieldType type) const { … }
void Address::SetRawInfoWithVerificationStatus(FieldType type,
const std::u16string& value,
VerificationStatus status) { … }
void Address::GetMatchingTypes(const std::u16string& text,
const std::string& app_locale,
FieldTypeSet* matching_types) const { … }
void Address::GetSupportedTypes(FieldTypeSet* supported_types) const { … }
std::u16string Address::GetInfoImpl(const AutofillType& type,
const std::string& locale) const { … }
bool Address::SetInfoWithVerificationStatusImpl(const AutofillType& type,
const std::u16string& value,
const std::string& locale,
VerificationStatus status) { … }
VerificationStatus Address::GetVerificationStatusImpl(FieldType type) const { … }
void Address::SetAddressCountryCode(const std::u16string& country_code,
VerificationStatus verification_status) { … }
bool Address::IsAddressFieldSettingAccessible(FieldType field_type) const { … }
}