/**
 * Autogenerated by Thrift for /opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.12.15.00/thrift/lib/cpp2/schema/syntax_graph.thrift
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated @nocommit
 */

#pragma once

#include <thrift/lib/cpp2/gen/module_types_h.h>

// BEGIN declare_enums
namespace apache::thrift::syntax_graph {

/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.12.15.00/thrift/lib/cpp2/schema/syntax_graph.thrift", "name": "Primitive", "kind": "enum" } */
enum class Primitive {
  BOOL = 1,
  BYTE = 2,
  I16 = 3,
  I32 = 4,
  I64 = 5,
  FLOAT = 6,
  DOUBLE = 7,
  STRING = 8,
  BINARY = 9,
};

/** Glean {"file": "/opt/local/var/macports/build/fbthrift-07c1dc61/work/fbthrift-2025.12.15.00/thrift/lib/cpp2/schema/syntax_graph.thrift", "name": "FieldPresenceQualifier", "kind": "enum" } */
enum class FieldPresenceQualifier {
  UNQUALIFIED = 1,
  OPTIONAL_ = 2,
};

} // namespace apache::thrift::syntax_graph

template<> struct std::hash<::apache::thrift::syntax_graph::Primitive> :
  ::apache::thrift::detail::enum_hash<::apache::thrift::syntax_graph::Primitive> {};
template<> struct std::hash<::apache::thrift::syntax_graph::FieldPresenceQualifier> :
  ::apache::thrift::detail::enum_hash<::apache::thrift::syntax_graph::FieldPresenceQualifier> {};

namespace apache::thrift {

template <> struct TEnumTraits<::apache::thrift::syntax_graph::Primitive> {
  using type = ::apache::thrift::syntax_graph::Primitive;

  static constexpr std::size_t const size = 9;
  static folly::Range<type const*> const values;
  static folly::Range<std::string_view const*> const names;
  static const std::string_view __fbthrift_module_name_internal_do_not_use;

  static bool findName(type value, std::string_view* out) noexcept;
  static bool findValue(std::string_view name, type* out) noexcept;

  FOLLY_ERASE static std::string_view typeName() noexcept {
    return "Primitive";
  }

  FOLLY_ERASE static constexpr std::string_view moduleName() noexcept {
    return "syntax_graph";
  }

  static char const* findName(type value) noexcept {
    std::string_view ret;
    (void)findName(value, &ret);
    return ret.data();
  }
  static constexpr type min() { return type::BOOL; }
  static constexpr type max() { return type::BINARY; }

  static const std::vector<std::any>& annotations() noexcept;
  static const std::vector<std::any>& enumValueAnnotations(::apache::thrift::syntax_graph::Primitive) noexcept;
};

template <> struct TEnumTraits<::apache::thrift::syntax_graph::FieldPresenceQualifier> {
  using type = ::apache::thrift::syntax_graph::FieldPresenceQualifier;

  static constexpr std::size_t const size = 2;
  static folly::Range<type const*> const values;
  static folly::Range<std::string_view const*> const names;
  static const std::string_view __fbthrift_module_name_internal_do_not_use;

  static bool findName(type value, std::string_view* out) noexcept;
  static bool findValue(std::string_view name, type* out) noexcept;

  FOLLY_ERASE static std::string_view typeName() noexcept {
    return "FieldPresenceQualifier";
  }

  FOLLY_ERASE static constexpr std::string_view moduleName() noexcept {
    return "syntax_graph";
  }

  static char const* findName(type value) noexcept {
    std::string_view ret;
    (void)findName(value, &ret);
    return ret.data();
  }
  static constexpr type min() { return type::UNQUALIFIED; }
  static constexpr type max() { return type::OPTIONAL_; }

  static const std::vector<std::any>& annotations() noexcept;
  static const std::vector<std::any>& enumValueAnnotations(::apache::thrift::syntax_graph::FieldPresenceQualifier) noexcept;
};

} // namespace apache::thrift
// END declare_enums
// BEGIN forward_declare
// END forward_declare
namespace apache::thrift::detail::annotation {
} // namespace apache::thrift::detail::annotation

namespace apache::thrift::detail::qualifier {
} // namespace apache::thrift::detail::qualifier

// BEGIN hash_and_equal_to
// END hash_and_equal_to
namespace apache::thrift::syntax_graph {
using ::apache::thrift::detail::operator!=;
using ::apache::thrift::detail::operator>;
using ::apache::thrift::detail::operator<=;
using ::apache::thrift::detail::operator>=;


} // namespace apache::thrift::syntax_graph

namespace apache::thrift::detail {
template <> struct TSchemaAssociation<::apache::thrift::syntax_graph::Primitive, true> {
  static constexpr ::folly::Range<const ::std::string_view*>(*bundle)() = nullptr;
  static constexpr int64_t programId = 8498857072941982203;
  static constexpr ::std::string_view definitionKey = {"\x3c\x09\x8b\xf7\x12\x03\x06\x5e\x8a\xe3\xfd\xac\x0e\x30\x4d\x0e", 16};
};
template <> struct TSchemaAssociation<::apache::thrift::syntax_graph::FieldPresenceQualifier, true> {
  static constexpr ::folly::Range<const ::std::string_view*>(*bundle)() = nullptr;
  static constexpr int64_t programId = 8498857072941982203;
  static constexpr ::std::string_view definitionKey = {"\x58\x4f\x20\x2a\xad\x1b\x52\xa0\x53\xd2\xd1\x81\x9d\xbb\x72\x05", 16};
};
} // namespace apache::thrift::detail
