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


#ifndef FLATBUFFERS_GENERATED_REFERENCE_FLAT_BIGFOOT_H_
#define FLATBUFFERS_GENERATED_REFERENCE_FLAT_BIGFOOT_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");
// Ensure the included flatbuffers.h is Bigfoot's fork - stock
// flatbuffers (or a differently versioned Bigfoot fork) is not compatible.
#ifndef FLATBUFFERS_BIGFOOT_VERSION
#error "This file requires Bigfoot's flatbuffers fork - stock flatbuffers is not compatible"
#endif
static_assert(FLATBUFFERS_BIGFOOT_VERSION == 1,
             "Non-compatible Bigfoot flatbuffers fork version included");

#include "System/UUID/UUID.hpp"
#include "Engine/Asset/Reference.hpp"
#include "System/UUID/UUID_generated.hpp"

#include "EASTL/unique_ptr.h"
#include "EASTL/string.h"
#include "EASTL/vector.h"

namespace Flat {
namespace Bigfoot {

struct HardReference;

struct SoftReference;

inline const ::flatbuffers::TypeTable *HardReferenceTypeTable();

inline const ::flatbuffers::TypeTable *SoftReferenceTypeTable();

FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) HardReference FLATBUFFERS_FINAL_CLASS {
 private:
  Flat::Bigfoot::UUID uuid_;

 public:
  struct Traits;
  static const ::flatbuffers::TypeTable *MiniReflectTypeTable() {
    return HardReferenceTypeTable();
  }
  static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() {
    return "Flat.Bigfoot.HardReference";
  }
  HardReference()
      : uuid_() {
  }
  HardReference(const Flat::Bigfoot::UUID &_uuid)
      : uuid_(_uuid) {
  }
  const Flat::Bigfoot::UUID &uuid() const {
    return uuid_;
  }
};
FLATBUFFERS_STRUCT_END(HardReference, 16);

struct HardReference::Traits {
  using type = HardReference;
};

FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) SoftReference FLATBUFFERS_FINAL_CLASS {
 private:
  Flat::Bigfoot::UUID uuid_;

 public:
  struct Traits;
  static const ::flatbuffers::TypeTable *MiniReflectTypeTable() {
    return SoftReferenceTypeTable();
  }
  static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() {
    return "Flat.Bigfoot.SoftReference";
  }
  SoftReference()
      : uuid_() {
  }
  SoftReference(const Flat::Bigfoot::UUID &_uuid)
      : uuid_(_uuid) {
  }
  const Flat::Bigfoot::UUID &uuid() const {
    return uuid_;
  }
};
FLATBUFFERS_STRUCT_END(SoftReference, 16);

struct SoftReference::Traits {
  using type = SoftReference;
};

inline const ::flatbuffers::TypeTable *HardReferenceTypeTable() {
  static const ::flatbuffers::TypeCode type_codes[] = {
    { ::flatbuffers::ET_SEQUENCE, 0, 0 }
  };
  static const ::flatbuffers::TypeFunction type_refs[] = {
    Flat::Bigfoot::UUIDTypeTable
  };
  static const int64_t values[] = { 0, 16 };
  static const ::flatbuffers::TypeTable tt = {
    ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, nullptr
  };
  return &tt;
}

inline const ::flatbuffers::TypeTable *SoftReferenceTypeTable() {
  static const ::flatbuffers::TypeCode type_codes[] = {
    { ::flatbuffers::ET_SEQUENCE, 0, 0 }
  };
  static const ::flatbuffers::TypeFunction type_refs[] = {
    Flat::Bigfoot::UUIDTypeTable
  };
  static const int64_t values[] = { 0, 16 };
  static const ::flatbuffers::TypeTable tt = {
    ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, nullptr
  };
  return &tt;
}

}  // namespace Bigfoot
}  // namespace Flat

#endif  // FLATBUFFERS_GENERATED_REFERENCE_FLAT_BIGFOOT_H_
