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


#ifndef FLATBUFFERS_GENERATED_FLATBUFFERSUTILSTEST_ONNXRUNTIME_FBS_TEST_H_
#define FLATBUFFERS_GENERATED_FLATBUFFERSUTILSTEST_ONNXRUNTIME_FBS_TEST_H_

// manual edit to use wrapper in core/common
#include "core/common/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 == 23 &&
              FLATBUFFERS_VERSION_MINOR == 5 &&
              FLATBUFFERS_VERSION_REVISION == 26,
             "Non-compatible flatbuffers version included");

// manual edit to set include path for this
#include "core/flatbuffers/schema/ort.fbs.h"

namespace onnxruntime {
namespace fbs {
namespace test {

struct TestData;
struct TestDataBuilder;

struct TestData FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
  typedef TestDataBuilder Builder;
  enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
    VT_INITIALIZERS = 4
  };
  const ::flatbuffers::Vector<::flatbuffers::Offset<onnxruntime::fbs::Tensor>> *initializers() const {
    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<onnxruntime::fbs::Tensor>> *>(VT_INITIALIZERS);
  }
  bool Verify(::flatbuffers::Verifier &verifier) const {
    return VerifyTableStart(verifier) &&
           VerifyOffset(verifier, VT_INITIALIZERS) &&
           verifier.VerifyVector(initializers()) &&
           verifier.VerifyVectorOfTables(initializers()) &&
           verifier.EndTable();
  }
};

struct TestDataBuilder {
  typedef TestData Table;
  ::flatbuffers::FlatBufferBuilder &fbb_;
  ::flatbuffers::uoffset_t start_;
  void add_initializers(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<onnxruntime::fbs::Tensor>>> initializers) {
    fbb_.AddOffset(TestData::VT_INITIALIZERS, initializers);
  }
  explicit TestDataBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
        : fbb_(_fbb) {
    start_ = fbb_.StartTable();
  }
  ::flatbuffers::Offset<TestData> Finish() {
    const auto end = fbb_.EndTable(start_);
    auto o = ::flatbuffers::Offset<TestData>(end);
    return o;
  }
};

inline ::flatbuffers::Offset<TestData> CreateTestData(
    ::flatbuffers::FlatBufferBuilder &_fbb,
    ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<onnxruntime::fbs::Tensor>>> initializers = 0) {
  TestDataBuilder builder_(_fbb);
  builder_.add_initializers(initializers);
  return builder_.Finish();
}

inline ::flatbuffers::Offset<TestData> CreateTestDataDirect(
    ::flatbuffers::FlatBufferBuilder &_fbb,
    const std::vector<::flatbuffers::Offset<onnxruntime::fbs::Tensor>> *initializers = nullptr) {
  auto initializers__ = initializers ? _fbb.CreateVector<::flatbuffers::Offset<onnxruntime::fbs::Tensor>>(*initializers) : 0;
  return onnxruntime::fbs::test::CreateTestData(
      _fbb,
      initializers__);
}

inline const onnxruntime::fbs::test::TestData *GetTestData(const void *buf) {
  return ::flatbuffers::GetRoot<onnxruntime::fbs::test::TestData>(buf);
}

inline const onnxruntime::fbs::test::TestData *GetSizePrefixedTestData(const void *buf) {
  return ::flatbuffers::GetSizePrefixedRoot<onnxruntime::fbs::test::TestData>(buf);
}

inline bool VerifyTestDataBuffer(
    ::flatbuffers::Verifier &verifier) {
  return verifier.VerifyBuffer<onnxruntime::fbs::test::TestData>(nullptr);
}

inline bool VerifySizePrefixedTestDataBuffer(
    ::flatbuffers::Verifier &verifier) {
  return verifier.VerifySizePrefixedBuffer<onnxruntime::fbs::test::TestData>(nullptr);
}

inline void FinishTestDataBuffer(
    ::flatbuffers::FlatBufferBuilder &fbb,
    ::flatbuffers::Offset<onnxruntime::fbs::test::TestData> root) {
  fbb.Finish(root);
}

inline void FinishSizePrefixedTestDataBuffer(
    ::flatbuffers::FlatBufferBuilder &fbb,
    ::flatbuffers::Offset<onnxruntime::fbs::test::TestData> root) {
  fbb.FinishSizePrefixed(root);
}

}  // namespace test
}  // namespace fbs
}  // namespace onnxruntime

#endif  // FLATBUFFERS_GENERATED_FLATBUFFERSUTILSTEST_ONNXRUNTIME_FBS_TEST_H_
