#include "components/autofill/core/browser/ml_model/autofill_model_encoder.h"
#include <stddef.h>
#include <string>
#include <vector>
#include "base/containers/flat_map.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_field.h"
#include "components/autofill/core/browser/form_structure.h"
#include "third_party/protobuf/src/google/protobuf/repeated_ptr_field.h"
namespace autofill {
namespace {
constexpr AutofillModelEncoder::TokenId kUnknownTokenId = …;
}
AutofillModelEncoder::AutofillModelEncoder(
const google::protobuf::RepeatedPtrField<std::string>& tokens) { … }
AutofillModelEncoder::AutofillModelEncoder() = default;
AutofillModelEncoder::AutofillModelEncoder(const AutofillModelEncoder&) =
default;
AutofillModelEncoder::~AutofillModelEncoder() = default;
AutofillModelEncoder::TokenId AutofillModelEncoder::TokenToId(
std::u16string_view token) const { … }
std::vector<std::array<AutofillModelEncoder::TokenId,
AutofillModelEncoder::kOutputSequenceLength>>
AutofillModelEncoder::EncodeForm(const FormStructure& form) const { … }
std::array<AutofillModelEncoder::TokenId,
AutofillModelEncoder::kOutputSequenceLength>
AutofillModelEncoder::EncodeField(const AutofillField& field) const { … }
std::array<AutofillModelEncoder::TokenId,
AutofillModelEncoder::kAttributeOutputSequenceLength>
AutofillModelEncoder::EncodeAttribute(
std::u16string_view input,
FieldAttributeIdentifier attribute_identifier) const { … }
std::array<AutofillModelEncoder::TokenId,
AutofillModelEncoder::kAttributeOutputSequenceLength - 1>
AutofillModelEncoder::TokenizeAttribute(std::u16string_view input) const { … }
}