chromium/components/payments/core/payments_profile_comparator.h

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_PAYMENTS_CORE_PAYMENTS_PROFILE_COMPARATOR_H_
#define COMPONENTS_PAYMENTS_CORE_PAYMENTS_PROFILE_COMPARATOR_H_

#include <map>
#include <string>
#include <vector>

#include "base/memory/raw_ptr.h"
#include "base/memory/raw_ref.h"
#include "components/autofill/core/browser/data_model/autofill_profile_comparator.h"

// Utility functions used for processing and filtering address profiles
// (AutofillProfile).

namespace autofill {
class AutofillProfile;
}  // namespace autofill

namespace payments {

class PaymentOptionsProvider;

// Helper class which evaluates profiles for similarity and completeness.
// Profiles are evaluated once for completeness, and the result is cached,
// meaning one instance of this class should be used per-request to avoid
// redoing expensive validation checks.
// Note that, if a profile is modified and saved during the course of the
// PaymentRequest, it is important to call the Invalidate method to ensure
// it is properly evaluated.
class PaymentsProfileComparator : public autofill::AutofillProfileComparator {};

}  // namespace payments

#endif  // COMPONENTS_PAYMENTS_CORE_PAYMENTS_PROFILE_COMPARATOR_H_