// automatically generated by the FlatBuffers compiler, do not modify


#ifndef FLATBUFFERS_GENERATED_ENGINECONFIG_HIPDNN_SDK_DATA_OBJECTS_H_
#define FLATBUFFERS_GENERATED_ENGINECONFIG_HIPDNN_SDK_DATA_OBJECTS_H_

#include "flatbuffers/flatbuffers.h"

// Ensure the included flatbuffers.h is the same version as when this file was
// generated, otherwise it may not be compatible.
static_assert(FLATBUFFERS_VERSION_MAJOR == 25 &&
              FLATBUFFERS_VERSION_MINOR == 12 &&
              FLATBUFFERS_VERSION_REVISION == 19,
             "Non-compatible flatbuffers version included");

namespace hipdnn_sdk {
namespace data_objects {

struct EngineConfig;
struct EngineConfigBuilder;
struct EngineConfigT;

bool operator==(const EngineConfigT &lhs, const EngineConfigT &rhs);
bool operator!=(const EngineConfigT &lhs, const EngineConfigT &rhs);

struct EngineConfigT : public ::flatbuffers::NativeTable {
  typedef EngineConfig TableType;
  int64_t engine_id = 0;
};

struct EngineConfig FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
  typedef EngineConfigT NativeTableType;
  typedef EngineConfigBuilder Builder;
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
    VT_ENGINE_ID = 4
  };
  int64_t engine_id() const {
    return GetField<int64_t>(VT_ENGINE_ID, 0);
  }
  bool mutate_engine_id(int64_t _engine_id = 0) {
    return SetField<int64_t>(VT_ENGINE_ID, _engine_id, 0);
  }
  template <bool B = false>
  bool Verify(::flatbuffers::VerifierTemplate<B> &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyField<int64_t>(verifier, VT_ENGINE_ID, 8) &&
           verifier.EndTable();
  }
  EngineConfigT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const;
  void UnPackTo(EngineConfigT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const;
  static ::flatbuffers::Offset<EngineConfig> Pack(::flatbuffers::FlatBufferBuilder &_fbb, const EngineConfigT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr);
};

struct EngineConfigBuilder {
  typedef EngineConfig Table;
  ::flatbuffers::FlatBufferBuilder &fbb_;
  ::flatbuffers::uoffset_t start_;
  void add_engine_id(int64_t engine_id) {
    fbb_.AddElement<int64_t>(EngineConfig::VT_ENGINE_ID, engine_id, 0);
  }
  explicit EngineConfigBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
        : fbb_(_fbb) {
    start_ = fbb_.StartTable();
  }
  ::flatbuffers::Offset<EngineConfig> Finish() {
    const auto end = fbb_.EndTable(start_);
    auto o = ::flatbuffers::Offset<EngineConfig>(end);
    return o;
  }
};

inline ::flatbuffers::Offset<EngineConfig> CreateEngineConfig(
    ::flatbuffers::FlatBufferBuilder &_fbb,
    int64_t engine_id = 0) {
  EngineConfigBuilder builder_(_fbb);
  builder_.add_engine_id(engine_id);
  return builder_.Finish();
}

::flatbuffers::Offset<EngineConfig> CreateEngineConfig(::flatbuffers::FlatBufferBuilder &_fbb, const EngineConfigT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr);


inline bool operator==(const EngineConfigT &lhs, const EngineConfigT &rhs) {
  return
      (lhs.engine_id == rhs.engine_id);
}

inline bool operator!=(const EngineConfigT &lhs, const EngineConfigT &rhs) {
    return !(lhs == rhs);
}


inline EngineConfigT *EngineConfig::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const {
  auto _o = std::unique_ptr<EngineConfigT>(new EngineConfigT());
  UnPackTo(_o.get(), _resolver);
  return _o.release();
}

inline void EngineConfig::UnPackTo(EngineConfigT *_o, const ::flatbuffers::resolver_function_t *_resolver) const {
  (void)_o;
  (void)_resolver;
  { auto _e = engine_id(); _o->engine_id = _e; }
}

inline ::flatbuffers::Offset<EngineConfig> CreateEngineConfig(::flatbuffers::FlatBufferBuilder &_fbb, const EngineConfigT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) {
  return EngineConfig::Pack(_fbb, _o, _rehasher);
}

inline ::flatbuffers::Offset<EngineConfig> EngineConfig::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const EngineConfigT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) {
  (void)_rehasher;
  (void)_o;
  struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const EngineConfigT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
  auto _engine_id = _o->engine_id;
  return hipdnn_sdk::data_objects::CreateEngineConfig(
      _fbb,
      _engine_id);
}

inline const hipdnn_sdk::data_objects::EngineConfig *GetEngineConfig(const void *buf) {
  return ::flatbuffers::GetRoot<hipdnn_sdk::data_objects::EngineConfig>(buf);
}

inline const hipdnn_sdk::data_objects::EngineConfig *GetSizePrefixedEngineConfig(const void *buf) {
  return ::flatbuffers::GetSizePrefixedRoot<hipdnn_sdk::data_objects::EngineConfig>(buf);
}

inline EngineConfig *GetMutableEngineConfig(void *buf) {
  return ::flatbuffers::GetMutableRoot<EngineConfig>(buf);
}

inline hipdnn_sdk::data_objects::EngineConfig *GetMutableSizePrefixedEngineConfig(void *buf) {
  return ::flatbuffers::GetMutableSizePrefixedRoot<hipdnn_sdk::data_objects::EngineConfig>(buf);
}

template <bool B = false>
inline bool VerifyEngineConfigBuffer(
    ::flatbuffers::VerifierTemplate<B> &verifier) {
  return verifier.template VerifyBuffer<hipdnn_sdk::data_objects::EngineConfig>(nullptr);
}

template <bool B = false>
inline bool VerifySizePrefixedEngineConfigBuffer(
    ::flatbuffers::VerifierTemplate<B> &verifier) {
  return verifier.template VerifySizePrefixedBuffer<hipdnn_sdk::data_objects::EngineConfig>(nullptr);
}

inline void FinishEngineConfigBuffer(
    ::flatbuffers::FlatBufferBuilder &fbb,
    ::flatbuffers::Offset<hipdnn_sdk::data_objects::EngineConfig> root) {
  fbb.Finish(root);
}

inline void FinishSizePrefixedEngineConfigBuffer(
    ::flatbuffers::FlatBufferBuilder &fbb,
    ::flatbuffers::Offset<hipdnn_sdk::data_objects::EngineConfig> root) {
  fbb.FinishSizePrefixed(root);
}

inline std::unique_ptr<hipdnn_sdk::data_objects::EngineConfigT> UnPackEngineConfig(
    const void *buf,
    const ::flatbuffers::resolver_function_t *res = nullptr) {
  return std::unique_ptr<hipdnn_sdk::data_objects::EngineConfigT>(GetEngineConfig(buf)->UnPack(res));
}

inline std::unique_ptr<hipdnn_sdk::data_objects::EngineConfigT> UnPackSizePrefixedEngineConfig(
    const void *buf,
    const ::flatbuffers::resolver_function_t *res = nullptr) {
  return std::unique_ptr<hipdnn_sdk::data_objects::EngineConfigT>(GetSizePrefixedEngineConfig(buf)->UnPack(res));
}

}  // namespace data_objects
}  // namespace hipdnn_sdk

#endif  // FLATBUFFERS_GENERATED_ENGINECONFIG_HIPDNN_SDK_DATA_OBJECTS_H_
