chromium/components/autofill/core/browser/form_parsing/address_field_parser_ng.h

// Copyright 2024 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_AUTOFILL_CORE_BROWSER_FORM_PARSING_ADDRESS_FIELD_PARSER_NG_H_
#define COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_PARSING_ADDRESS_FIELD_PARSER_NG_H_

#include <map>
#include <memory>
#include <string_view>

#include "components/autofill/core/browser/field_types.h"
#include "components/autofill/core/browser/form_parsing/form_field_parser.h"

namespace autofill {

// A partial or final interpretation of fields.
// A `ClassifiedFieldSequence` assigns field types to fields such that
// - no field type can be assigned to two different fields.
// - no field can be assigned more than one type.
struct ClassifiedFieldSequence {};

// This is an address field parser that is based on backtracing to find the
// highest scoring set of assignments of types to fields while respecting a set
// of constraints (e.g. which field types may co-occur, the order in which field
// types may occur, ...).
class AddressFieldParserNG : public FormFieldParser {};

}  // namespace autofill

#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_PARSING_ADDRESS_FIELD_PARSER_NG_H_