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

#ifndef CRYPTOHOME_AUTH_FACTOR_AUTH_FACTOR_METADATA_H_
#define CRYPTOHOME_AUTH_FACTOR_AUTH_FACTOR_METADATA_H_

#include <variant>

namespace cryptohome {

struct PasswordAuthFactorMetadata {
  PasswordAuthFactorMetadata() = default;
};

struct PinAuthFactorMetadata {
  PinAuthFactorMetadata() = default;
};

struct AuthFactorMetadata {
  // Use `std::monostate` as the first alternative, in order to make the
  // default constructor create an empty metadata.
  std::
      variant<std::monostate, PasswordAuthFactorMetadata, PinAuthFactorMetadata>
          metadata;
};

}  // namespace cryptohome

#endif  // CRYPTOHOME_AUTH_FACTOR_AUTH_FACTOR_METADATA_H_
