// automatically generated by the FlatBuffers compiler, do not modify #ifndef FLATBUFFERS_GENERATED_TENSOR_MNN_H_ #define FLATBUFFERS_GENERATED_TENSOR_MNN_H_ #include "Type_generated.h" namespace MNN { struct Blob; struct BlobT; struct ListValue; struct ListValueT; struct Attribute; struct AttributeT; struct NamedAttrList; struct NamedAttrListT; inline const flatbuffers::TypeTable *BlobTypeTable(); inline const flatbuffers::TypeTable *ListValueTypeTable(); inline const flatbuffers::TypeTable *AttributeTypeTable(); inline const flatbuffers::TypeTable *NamedAttrListTypeTable(); enum MNN_DATA_FORMAT { MNN_DATA_FORMAT_NCHW = 0, MNN_DATA_FORMAT_NHWC = 1, MNN_DATA_FORMAT_NC4HW4 = 2, MNN_DATA_FORMAT_NHWC4 = 3, MNN_DATA_FORMAT_UNKNOWN = 4, MNN_DATA_FORMAT_MIN = MNN_DATA_FORMAT_NCHW, MNN_DATA_FORMAT_MAX = MNN_DATA_FORMAT_UNKNOWN }; inline const MNN_DATA_FORMAT (&EnumValuesMNN_DATA_FORMAT())[5] { static const MNN_DATA_FORMAT values[] = { MNN_DATA_FORMAT_NCHW, MNN_DATA_FORMAT_NHWC, MNN_DATA_FORMAT_NC4HW4, MNN_DATA_FORMAT_NHWC4, MNN_DATA_FORMAT_UNKNOWN }; return values; } inline const char * const *EnumNamesMNN_DATA_FORMAT() { static const char * const names[] = { "NCHW", "NHWC", "NC4HW4", "NHWC4", "UNKNOWN", nullptr }; return names; } inline const char *EnumNameMNN_DATA_FORMAT(MNN_DATA_FORMAT e) { if (e < MNN_DATA_FORMAT_NCHW || e > MNN_DATA_FORMAT_UNKNOWN) return ""; const size_t index = static_cast(e); return EnumNamesMNN_DATA_FORMAT()[index]; } struct BlobT : public flatbuffers::NativeTable { typedef Blob TableType; std::vector dims; MNN_DATA_FORMAT dataFormat; DataType dataType; std::vector uint8s; std::vector int8s; std::vector int32s; std::vector int64s; std::vector float32s; std::vector strings; std::vector external; BlobT() : dataFormat(MNN_DATA_FORMAT_NCHW), dataType(DataType_DT_FLOAT) { } }; struct Blob FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { typedef BlobT NativeTableType; static const flatbuffers::TypeTable *MiniReflectTypeTable() { return BlobTypeTable(); } const flatbuffers::Vector *dims() const { return GetPointer *>(4); } MNN_DATA_FORMAT dataFormat() const { return static_cast(GetField(6, 0)); } DataType dataType() const { return static_cast(GetField(8, 1)); } const flatbuffers::Vector *uint8s() const { return GetPointer *>(10); } const flatbuffers::Vector *int8s() const { return GetPointer *>(12); } const flatbuffers::Vector *int32s() const { return GetPointer *>(14); } const flatbuffers::Vector *int64s() const { return GetPointer *>(16); } const flatbuffers::Vector *float32s() const { return GetPointer *>(18); } const flatbuffers::Vector> *strings() const { return GetPointer> *>(20); } const flatbuffers::Vector *external() const { return GetPointer *>(22); } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, 4) && verifier.VerifyVector(dims()) && VerifyField(verifier, 6) && VerifyField(verifier, 8) && VerifyOffset(verifier, 10) && verifier.VerifyVector(uint8s()) && VerifyOffset(verifier, 12) && verifier.VerifyVector(int8s()) && VerifyOffset(verifier, 14) && verifier.VerifyVector(int32s()) && VerifyOffset(verifier, 16) && verifier.VerifyVector(int64s()) && VerifyOffset(verifier, 18) && verifier.VerifyVector(float32s()) && VerifyOffset(verifier, 20) && verifier.VerifyVector(strings()) && verifier.VerifyVectorOfStrings(strings()) && VerifyOffset(verifier, 22) && verifier.VerifyVector(external()) && verifier.EndTable(); } BlobT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; void UnPackTo(BlobT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const BlobT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct BlobBuilder { flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; void add_dims(flatbuffers::Offset> dims) { fbb_.AddOffset(4, dims); } void add_dataFormat(MNN_DATA_FORMAT dataFormat) { fbb_.AddElement(6, static_cast(dataFormat), 0); } void add_dataType(DataType dataType) { fbb_.AddElement(8, static_cast(dataType), 1); } void add_uint8s(flatbuffers::Offset> uint8s) { fbb_.AddOffset(10, uint8s); } void add_int8s(flatbuffers::Offset> int8s) { fbb_.AddOffset(12, int8s); } void add_int32s(flatbuffers::Offset> int32s) { fbb_.AddOffset(14, int32s); } void add_int64s(flatbuffers::Offset> int64s) { fbb_.AddOffset(16, int64s); } void add_float32s(flatbuffers::Offset> float32s) { fbb_.AddOffset(18, float32s); } void add_strings(flatbuffers::Offset>> strings) { fbb_.AddOffset(20, strings); } void add_external(flatbuffers::Offset> external) { fbb_.AddOffset(22, external); } explicit BlobBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } BlobBuilder &operator=(const BlobBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); return o; } }; inline flatbuffers::Offset CreateBlob( flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset> dims = 0, MNN_DATA_FORMAT dataFormat = MNN_DATA_FORMAT_NCHW, DataType dataType = DataType_DT_FLOAT, flatbuffers::Offset> uint8s = 0, flatbuffers::Offset> int8s = 0, flatbuffers::Offset> int32s = 0, flatbuffers::Offset> int64s = 0, flatbuffers::Offset> float32s = 0, flatbuffers::Offset>> strings = 0, flatbuffers::Offset> external = 0) { BlobBuilder builder_(_fbb); builder_.add_external(external); builder_.add_strings(strings); builder_.add_float32s(float32s); builder_.add_int64s(int64s); builder_.add_int32s(int32s); builder_.add_int8s(int8s); builder_.add_uint8s(uint8s); builder_.add_dataType(dataType); builder_.add_dims(dims); builder_.add_dataFormat(dataFormat); return builder_.Finish(); } flatbuffers::Offset CreateBlob(flatbuffers::FlatBufferBuilder &_fbb, const BlobT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); struct ListValueT : public flatbuffers::NativeTable { typedef ListValue TableType; std::vector s; std::vector i; std::vector f; std::vector b; std::vector type; ListValueT() { } }; struct ListValue FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { typedef ListValueT NativeTableType; static const flatbuffers::TypeTable *MiniReflectTypeTable() { return ListValueTypeTable(); } const flatbuffers::Vector> *s() const { return GetPointer> *>(4); } const flatbuffers::Vector *i() const { return GetPointer *>(6); } const flatbuffers::Vector *f() const { return GetPointer *>(8); } const flatbuffers::Vector *b() const { return GetPointer *>(10); } const flatbuffers::Vector *type() const { return GetPointer *>(12); } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, 4) && verifier.VerifyVector(s()) && verifier.VerifyVectorOfStrings(s()) && VerifyOffset(verifier, 6) && verifier.VerifyVector(i()) && VerifyOffset(verifier, 8) && verifier.VerifyVector(f()) && VerifyOffset(verifier, 10) && verifier.VerifyVector(b()) && VerifyOffset(verifier, 12) && verifier.VerifyVector(type()) && verifier.EndTable(); } ListValueT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; void UnPackTo(ListValueT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ListValueT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ListValueBuilder { flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; void add_s(flatbuffers::Offset>> s) { fbb_.AddOffset(4, s); } void add_i(flatbuffers::Offset> i) { fbb_.AddOffset(6, i); } void add_f(flatbuffers::Offset> f) { fbb_.AddOffset(8, f); } void add_b(flatbuffers::Offset> b) { fbb_.AddOffset(10, b); } void add_type(flatbuffers::Offset> type) { fbb_.AddOffset(12, type); } explicit ListValueBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } ListValueBuilder &operator=(const ListValueBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); return o; } }; inline flatbuffers::Offset CreateListValue( flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset>> s = 0, flatbuffers::Offset> i = 0, flatbuffers::Offset> f = 0, flatbuffers::Offset> b = 0, flatbuffers::Offset> type = 0) { ListValueBuilder builder_(_fbb); builder_.add_type(type); builder_.add_b(b); builder_.add_f(f); builder_.add_i(i); builder_.add_s(s); return builder_.Finish(); } flatbuffers::Offset CreateListValue(flatbuffers::FlatBufferBuilder &_fbb, const ListValueT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); struct AttributeT : public flatbuffers::NativeTable { typedef Attribute TableType; std::string s; int32_t i; bool b; std::string key; DataType type; float f; std::unique_ptr tensor; std::unique_ptr list; std::unique_ptr func; AttributeT() : i(0), b(false), type(DataType_DT_INVALID), f(0.0f) { } }; struct Attribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { typedef AttributeT NativeTableType; static const flatbuffers::TypeTable *MiniReflectTypeTable() { return AttributeTypeTable(); } const flatbuffers::String *s() const { return GetPointer(4); } int32_t i() const { return GetField(6, 0); } bool b() const { return GetField(8, 0) != 0; } const flatbuffers::String *key() const { return GetPointer(10); } bool KeyCompareLessThan(const Attribute *o) const { return *key() < *o->key(); } int KeyCompareWithValue(const char *val) const { return strcmp(key()->c_str(), val); } DataType type() const { return static_cast(GetField(12, 0)); } float f() const { return GetField(14, 0.0f); } const Blob *tensor() const { return GetPointer(16); } const ListValue *list() const { return GetPointer(18); } const NamedAttrList *func() const { return GetPointer(20); } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, 4) && verifier.VerifyString(s()) && VerifyField(verifier, 6) && VerifyField(verifier, 8) && VerifyOffsetRequired(verifier, 10) && verifier.VerifyString(key()) && VerifyField(verifier, 12) && VerifyField(verifier, 14) && VerifyOffset(verifier, 16) && verifier.VerifyTable(tensor()) && VerifyOffset(verifier, 18) && verifier.VerifyTable(list()) && VerifyOffset(verifier, 20) && verifier.VerifyTable(func()) && verifier.EndTable(); } AttributeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; void UnPackTo(AttributeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const AttributeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct AttributeBuilder { flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; void add_s(flatbuffers::Offset s) { fbb_.AddOffset(4, s); } void add_i(int32_t i) { fbb_.AddElement(6, i, 0); } void add_b(bool b) { fbb_.AddElement(8, static_cast(b), 0); } void add_key(flatbuffers::Offset key) { fbb_.AddOffset(10, key); } void add_type(DataType type) { fbb_.AddElement(12, static_cast(type), 0); } void add_f(float f) { fbb_.AddElement(14, f, 0.0f); } void add_tensor(flatbuffers::Offset tensor) { fbb_.AddOffset(16, tensor); } void add_list(flatbuffers::Offset list) { fbb_.AddOffset(18, list); } void add_func(flatbuffers::Offset func) { fbb_.AddOffset(20, func); } explicit AttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } AttributeBuilder &operator=(const AttributeBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); fbb_.Required(o, 10); return o; } }; inline flatbuffers::Offset CreateAttribute( flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset s = 0, int32_t i = 0, bool b = false, flatbuffers::Offset key = 0, DataType type = DataType_DT_INVALID, float f = 0.0f, flatbuffers::Offset tensor = 0, flatbuffers::Offset list = 0, flatbuffers::Offset func = 0) { AttributeBuilder builder_(_fbb); builder_.add_func(func); builder_.add_list(list); builder_.add_tensor(tensor); builder_.add_f(f); builder_.add_type(type); builder_.add_key(key); builder_.add_i(i); builder_.add_s(s); builder_.add_b(b); return builder_.Finish(); } flatbuffers::Offset CreateAttribute(flatbuffers::FlatBufferBuilder &_fbb, const AttributeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); struct NamedAttrListT : public flatbuffers::NativeTable { typedef NamedAttrList TableType; std::string name; std::vector> attr; NamedAttrListT() { } }; struct NamedAttrList FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { typedef NamedAttrListT NativeTableType; static const flatbuffers::TypeTable *MiniReflectTypeTable() { return NamedAttrListTypeTable(); } const flatbuffers::String *name() const { return GetPointer(4); } const flatbuffers::Vector> *attr() const { return GetPointer> *>(6); } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, 4) && verifier.VerifyString(name()) && VerifyOffset(verifier, 6) && verifier.VerifyVector(attr()) && verifier.VerifyVectorOfTables(attr()) && verifier.EndTable(); } NamedAttrListT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; void UnPackTo(NamedAttrListT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const NamedAttrListT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct NamedAttrListBuilder { flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; void add_name(flatbuffers::Offset name) { fbb_.AddOffset(4, name); } void add_attr(flatbuffers::Offset>> attr) { fbb_.AddOffset(6, attr); } explicit NamedAttrListBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } NamedAttrListBuilder &operator=(const NamedAttrListBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); return o; } }; inline flatbuffers::Offset CreateNamedAttrList( flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset name = 0, flatbuffers::Offset>> attr = 0) { NamedAttrListBuilder builder_(_fbb); builder_.add_attr(attr); builder_.add_name(name); return builder_.Finish(); } flatbuffers::Offset CreateNamedAttrList(flatbuffers::FlatBufferBuilder &_fbb, const NamedAttrListT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); inline BlobT *Blob::UnPack(const flatbuffers::resolver_function_t *_resolver) const { auto _o = new BlobT(); UnPackTo(_o, _resolver); return _o; } inline void Blob::UnPackTo(BlobT *_o, const flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = dims(); if (_e) { _o->dims.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dims[_i] = _e->Get(_i); } } }; { auto _e = dataFormat(); _o->dataFormat = _e; }; { auto _e = dataType(); _o->dataType = _e; }; { auto _e = uint8s(); if (_e) { _o->uint8s.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->uint8s[_i] = _e->Get(_i); } } }; { auto _e = int8s(); if (_e) { _o->int8s.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->int8s[_i] = _e->Get(_i); } } }; { auto _e = int32s(); if (_e) { _o->int32s.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->int32s[_i] = _e->Get(_i); } } }; { auto _e = int64s(); if (_e) { _o->int64s.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->int64s[_i] = _e->Get(_i); } } }; { auto _e = float32s(); if (_e) { _o->float32s.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->float32s[_i] = _e->Get(_i); } } }; { auto _e = strings(); if (_e) { _o->strings.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->strings[_i] = _e->Get(_i)->str(); } } }; { auto _e = external(); if (_e) { _o->external.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->external[_i] = _e->Get(_i); } } }; } inline flatbuffers::Offset Blob::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BlobT* _o, const flatbuffers::rehasher_function_t *_rehasher) { return CreateBlob(_fbb, _o, _rehasher); } inline flatbuffers::Offset CreateBlob(flatbuffers::FlatBufferBuilder &_fbb, const BlobT *_o, const flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const BlobT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _dims = _o->dims.size() ? _fbb.CreateVector(_o->dims) : 0; auto _dataFormat = _o->dataFormat; auto _dataType = _o->dataType; auto _uint8s = _o->uint8s.size() ? _fbb.CreateVector(_o->uint8s) : 0; auto _int8s = _o->int8s.size() ? _fbb.CreateVector(_o->int8s) : 0; auto _int32s = _o->int32s.size() ? _fbb.CreateVector(_o->int32s) : 0; auto _int64s = _o->int64s.size() ? _fbb.CreateVector(_o->int64s) : 0; auto _float32s = _o->float32s.size() ? _fbb.CreateVector(_o->float32s) : 0; auto _strings = _o->strings.size() ? _fbb.CreateVectorOfStrings(_o->strings) : 0; auto _external = _o->external.size() ? _fbb.CreateVector(_o->external) : 0; return MNN::CreateBlob( _fbb, _dims, _dataFormat, _dataType, _uint8s, _int8s, _int32s, _int64s, _float32s, _strings, _external); } inline ListValueT *ListValue::UnPack(const flatbuffers::resolver_function_t *_resolver) const { auto _o = new ListValueT(); UnPackTo(_o, _resolver); return _o; } inline void ListValue::UnPackTo(ListValueT *_o, const flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = s(); if (_e) { _o->s.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->s[_i] = _e->Get(_i)->str(); } } }; { auto _e = i(); if (_e) { _o->i.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->i[_i] = _e->Get(_i); } } }; { auto _e = f(); if (_e) { _o->f.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->f[_i] = _e->Get(_i); } } }; { auto _e = b(); if (_e) { _o->b.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->b[_i] = _e->Get(_i) != 0; } } }; { auto _e = type(); if (_e) { _o->type.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->type[_i] = static_cast(_e->Get(_i)); } } }; } inline flatbuffers::Offset ListValue::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ListValueT* _o, const flatbuffers::rehasher_function_t *_rehasher) { return CreateListValue(_fbb, _o, _rehasher); } inline flatbuffers::Offset CreateListValue(flatbuffers::FlatBufferBuilder &_fbb, const ListValueT *_o, const flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ListValueT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _s = _o->s.size() ? _fbb.CreateVectorOfStrings(_o->s) : 0; auto _i = _o->i.size() ? _fbb.CreateVector(_o->i) : 0; auto _f = _o->f.size() ? _fbb.CreateVector(_o->f) : 0; auto _b = _o->b.size() ? _fbb.CreateVector(_o->b) : 0; auto _type = _o->type.size() ? _fbb.CreateVectorScalarCast(flatbuffers::data(_o->type), _o->type.size()) : 0; return MNN::CreateListValue( _fbb, _s, _i, _f, _b, _type); } inline AttributeT *Attribute::UnPack(const flatbuffers::resolver_function_t *_resolver) const { auto _o = new AttributeT(); UnPackTo(_o, _resolver); return _o; } inline void Attribute::UnPackTo(AttributeT *_o, const flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = s(); if (_e) _o->s = _e->str(); }; { auto _e = i(); _o->i = _e; }; { auto _e = b(); _o->b = _e; }; { auto _e = key(); if (_e) _o->key = _e->str(); }; { auto _e = type(); _o->type = _e; }; { auto _e = f(); _o->f = _e; }; { auto _e = tensor(); if (_e) _o->tensor = std::unique_ptr(_e->UnPack(_resolver)); }; { auto _e = list(); if (_e) _o->list = std::unique_ptr(_e->UnPack(_resolver)); }; { auto _e = func(); if (_e) _o->func = std::unique_ptr(_e->UnPack(_resolver)); }; } inline flatbuffers::Offset Attribute::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AttributeT* _o, const flatbuffers::rehasher_function_t *_rehasher) { return CreateAttribute(_fbb, _o, _rehasher); } inline flatbuffers::Offset CreateAttribute(flatbuffers::FlatBufferBuilder &_fbb, const AttributeT *_o, const flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AttributeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _s = _o->s.empty() ? 0 : _fbb.CreateString(_o->s); auto _i = _o->i; auto _b = _o->b; auto _key = _fbb.CreateString(_o->key); auto _type = _o->type; auto _f = _o->f; auto _tensor = _o->tensor ? CreateBlob(_fbb, _o->tensor.get(), _rehasher) : 0; auto _list = _o->list ? CreateListValue(_fbb, _o->list.get(), _rehasher) : 0; auto _func = _o->func ? CreateNamedAttrList(_fbb, _o->func.get(), _rehasher) : 0; return MNN::CreateAttribute( _fbb, _s, _i, _b, _key, _type, _f, _tensor, _list, _func); } inline NamedAttrListT *NamedAttrList::UnPack(const flatbuffers::resolver_function_t *_resolver) const { auto _o = new NamedAttrListT(); UnPackTo(_o, _resolver); return _o; } inline void NamedAttrList::UnPackTo(NamedAttrListT *_o, const flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = name(); if (_e) _o->name = _e->str(); }; { auto _e = attr(); if (_e) { _o->attr.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->attr[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } }; } inline flatbuffers::Offset NamedAttrList::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NamedAttrListT* _o, const flatbuffers::rehasher_function_t *_rehasher) { return CreateNamedAttrList(_fbb, _o, _rehasher); } inline flatbuffers::Offset CreateNamedAttrList(flatbuffers::FlatBufferBuilder &_fbb, const NamedAttrListT *_o, const flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NamedAttrListT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name); auto _attr = _o->attr.size() ? _fbb.CreateVector> (_o->attr.size(), [](size_t i, _VectorArgs *__va) { return CreateAttribute(*__va->__fbb, __va->__o->attr[i].get(), __va->__rehasher); }, &_va ) : 0; return MNN::CreateNamedAttrList( _fbb, _name, _attr); } inline const flatbuffers::TypeTable *MNN_DATA_FORMATTypeTable() { static const flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_CHAR, 0, 0 }, { flatbuffers::ET_CHAR, 0, 0 }, { flatbuffers::ET_CHAR, 0, 0 }, { flatbuffers::ET_CHAR, 0, 0 }, { flatbuffers::ET_CHAR, 0, 0 } }; static const flatbuffers::TypeFunction type_refs[] = { MNN_DATA_FORMATTypeTable }; static const char * const names[] = { "NCHW", "NHWC", "NC4HW4", "NHWC4", "UNKNOWN" }; static const flatbuffers::TypeTable tt = { flatbuffers::ST_ENUM, 5, type_codes, type_refs, nullptr, names }; return &tt; } inline const flatbuffers::TypeTable *BlobTypeTable() { static const flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_INT, 1, -1 }, { flatbuffers::ET_CHAR, 0, 0 }, { flatbuffers::ET_INT, 0, 1 }, { flatbuffers::ET_UCHAR, 1, -1 }, { flatbuffers::ET_CHAR, 1, -1 }, { flatbuffers::ET_INT, 1, -1 }, { flatbuffers::ET_LONG, 1, -1 }, { flatbuffers::ET_FLOAT, 1, -1 }, { flatbuffers::ET_STRING, 1, -1 }, { flatbuffers::ET_LONG, 1, -1 } }; static const flatbuffers::TypeFunction type_refs[] = { MNN_DATA_FORMATTypeTable, DataTypeTypeTable }; static const char * const names[] = { "dims", "dataFormat", "dataType", "uint8s", "int8s", "int32s", "int64s", "float32s", "strings", "external" }; static const flatbuffers::TypeTable tt = { flatbuffers::ST_TABLE, 10, type_codes, type_refs, nullptr, names }; return &tt; } inline const flatbuffers::TypeTable *ListValueTypeTable() { static const flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_STRING, 1, -1 }, { flatbuffers::ET_INT, 1, -1 }, { flatbuffers::ET_FLOAT, 1, -1 }, { flatbuffers::ET_BOOL, 1, -1 }, { flatbuffers::ET_INT, 1, 0 } }; static const flatbuffers::TypeFunction type_refs[] = { DataTypeTypeTable }; static const char * const names[] = { "s", "i", "f", "b", "type" }; static const flatbuffers::TypeTable tt = { flatbuffers::ST_TABLE, 5, type_codes, type_refs, nullptr, names }; return &tt; } inline const flatbuffers::TypeTable *AttributeTypeTable() { static const flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_STRING, 0, -1 }, { flatbuffers::ET_INT, 0, -1 }, { flatbuffers::ET_BOOL, 0, -1 }, { flatbuffers::ET_STRING, 0, -1 }, { flatbuffers::ET_INT, 0, 0 }, { flatbuffers::ET_FLOAT, 0, -1 }, { flatbuffers::ET_SEQUENCE, 0, 1 }, { flatbuffers::ET_SEQUENCE, 0, 2 }, { flatbuffers::ET_SEQUENCE, 0, 3 } }; static const flatbuffers::TypeFunction type_refs[] = { DataTypeTypeTable, BlobTypeTable, ListValueTypeTable, NamedAttrListTypeTable }; static const char * const names[] = { "s", "i", "b", "key", "type", "f", "tensor", "list", "func" }; static const flatbuffers::TypeTable tt = { flatbuffers::ST_TABLE, 9, type_codes, type_refs, nullptr, names }; return &tt; } inline const flatbuffers::TypeTable *NamedAttrListTypeTable() { static const flatbuffers::TypeCode type_codes[] = { { flatbuffers::ET_STRING, 0, -1 }, { flatbuffers::ET_SEQUENCE, 1, 0 } }; static const flatbuffers::TypeFunction type_refs[] = { AttributeTypeTable }; static const char * const names[] = { "name", "attr" }; static const flatbuffers::TypeTable tt = { flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, names }; return &tt; } } // namespace MNN #endif // FLATBUFFERS_GENERATED_TENSOR_MNN_H_