#include "components/autofill/core/browser/data_model/iban.h"
#include <string_view>
#include "base/containers/fixed_flat_map.h"
#include "base/notreached.h"
#include "base/strings/strcat.h"
#include "base/strings/utf_string_conversions.h"
#include "base/uuid.h"
#include "components/autofill/core/browser/autofill_field.h"
#include "components/autofill/core/browser/data_model/payments_metadata.h"
#include "components/autofill/core/browser/metrics/payments/iban_metrics.h"
#include "components/autofill/core/common/autofill_clock.h"
#include "components/autofill/core/common/autofill_regexes.h"
namespace autofill {
namespace {
static constexpr int kPrefixLength = …;
static constexpr int kSuffixLength = …;
int GetRemainderOfIbanValue(const std::u16string& stripped_value) { … }
std::u16string RemoveIbanSeparators(std::u16string_view value) { … }
}
constexpr char16_t kCapitalizedIbanPattern[] = …;
constexpr char16_t kEllipsisOneDot = …;
constexpr char16_t kEllipsisOneSpace = …;
Iban::Iban() : … { … }
Iban::Iban(const Guid& guid)
: … { … }
Iban::Iban(const InstrumentId& instrument_id)
: … { … }
Iban::Iban(const Iban& iban) : … { … }
Iban::~Iban() = default;
Iban& Iban::operator=(const Iban& iban) = default;
PaymentsMetadata Iban::GetMetadata() const { … }
bool Iban::IsValid(const std::u16string& value) { … }
std::string Iban::GetCountryCode(const std::u16string& iban_value) { … }
bool Iban::IsIbanApplicableInCountry(const std::string& country_code) { … }
Iban::IbanSupportedCountry Iban::GetIbanSupportedCountry(
std::string_view country_code) { … }
size_t Iban::GetLengthOfIbanCountry(IbanSupportedCountry supported_country) { … }
bool Iban::SetMetadata(const PaymentsMetadata& metadata) { … }
std::u16string Iban::GetRawInfo(FieldType type) const { … }
void Iban::SetRawInfoWithVerificationStatus(FieldType type,
const std::u16string& value,
VerificationStatus status) { … }
void Iban::GetSupportedTypes(FieldTypeSet* supported_types) const { … }
bool Iban::IsEmpty(const std::string& app_locale) const { … }
int Iban::Compare(const Iban& iban) const { … }
bool Iban::operator==(const Iban& iban) const { … }
void Iban::set_identifier(const absl::variant<Guid, InstrumentId>& identifier) { … }
const std::string& Iban::guid() const { … }
int64_t Iban::instrument_id() const { … }
void Iban::set_value(const std::u16string& value) { … }
void Iban::set_nickname(const std::u16string& nickname) { … }
void Iban::set_prefix(std::u16string prefix) { … }
void Iban::set_suffix(std::u16string suffix) { … }
bool Iban::IsValid() { … }
std::string Iban::GetCountryCode() const { … }
void Iban::RecordAndLogUse() { … }
std::u16string Iban::GetIdentifierStringForAutofillDisplay(
bool is_value_masked) const { … }
bool Iban::MatchesPrefixAndSuffix(const Iban& iban) const { … }
std::ostream& operator<<(std::ostream& os, const Iban& iban) { … }
}