code += "}\n\n";
}
+ // Emit the size of the struct.
+ if (struct_def.fixed) {
+ GenDocComment(code_ptr, GenTypeAnnotation(kReturns, "number", "", false));
+ if (lang_.language == IDLOptions::kTs) {
+ code += "static sizeOf():number {\n";
+ } else {
+ code += object_name + ".sizeOf = function() {\n";
+ }
+ code += " return " + NumToString(struct_def.bytesize) + ";\n";
+ code += "}\n\n";
+ }
+
// Emit a factory constructor
if (struct_def.fixed) {
std::string annotations =
}
}
+ // Generate struct sizeof.
+ void GenStructSizeOf(const StructDef &struct_def, std::string *code_ptr) {
+ auto &code = *code_ptr;
+ code += Indent + "@classmethod\n";
+ code += Indent + "def SizeOf(cls):\n";
+ code +=
+ Indent + Indent + "return " + NumToString(struct_def.bytesize) + "\n";
+ code += "\n";
+ }
+
// Generate table constructors, conditioned on its members' types.
void GenTableBuilders(const StructDef &struct_def, std::string *code_ptr) {
GetStartOfTable(struct_def, code_ptr);
// Generate a special function to test file_identifier
GenHasFileIdentifier(struct_def, code_ptr);
}
+ } else {
+ // Generates the SizeOf method for all structs.
+ GenStructSizeOf(struct_def, code_ptr);
}
// Generates the Init method that sets the field in a pre-existing
// accessor object. This is to allow object reuse.
class Ability(object):
__slots__ = ['_tab']
+ @classmethod
+ def SizeOf(cls):
+ return 8
+
# Ability
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
class ArrayStruct(object):
__slots__ = ['_tab']
+ @classmethod
+ def SizeOf(cls):
+ return 160
+
# ArrayStruct
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
class NestedStruct(object):
__slots__ = ['_tab']
+ @classmethod
+ def SizeOf(cls):
+ return 32
+
# NestedStruct
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
class Test(object):
__slots__ = ['_tab']
+ @classmethod
+ def SizeOf(cls):
+ return 4
+
# Test
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
class Vec3(object):
__slots__ = ['_tab']
+ @classmethod
+ def SizeOf(cls):
+ return 32
+
# Vec3
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
return true;
};
+/**
+ * @returns {number}
+ */
+MyGame.Example.Test.sizeOf = function() {
+ return 4;
+}
+
/**
* @param {flatbuffers.Builder} builder
* @param {number} a
return (obj || new MyGame.Example.Test).__init(this.bb_pos + 26, this.bb);
};
+/**
+ * @returns {number}
+ */
+MyGame.Example.Vec3.sizeOf = function() {
+ return 32;
+}
+
/**
* @param {flatbuffers.Builder} builder
* @param {number} x
return true;
};
+/**
+ * @returns {number}
+ */
+MyGame.Example.Ability.sizeOf = function() {
+ return 8;
+}
+
/**
* @param {flatbuffers.Builder} builder
* @param {number} id
return true;
};
+/**
+ * @returns number
+ */
+static sizeOf():number {
+ return 4;
+}
+
/**
* @param flatbuffers.Builder builder
* @param number a
return (obj || new MyGame.Example.Test()).__init(this.bb_pos + 26, this.bb!);
};
+/**
+ * @returns number
+ */
+static sizeOf():number {
+ return 32;
+}
+
/**
* @param flatbuffers.Builder builder
* @param number x
return true;
};
+/**
+ * @returns number
+ */
+static sizeOf():number {
+ return 8;
+}
+
/**
* @param flatbuffers.Builder builder
* @param number id
class StructInNestedNS(object):
__slots__ = ['_tab']
+ @classmethod
+ def SizeOf(cls):
+ return 8
+
# StructInNestedNS
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
return 'NamespaceA.NamespaceB.StructInNestedNS';
}
+/**
+ * @returns {number}
+ */
+NamespaceA.NamespaceB.StructInNestedNS.sizeOf = function() {
+ return 8;
+}
+
/**
* @param {flatbuffers.Builder} builder
* @param {number} a
return 'NamespaceA.NamespaceB.StructInNestedNS';
}
+/**
+ * @returns number
+ */
+static sizeOf():number {
+ return 8;
+}
+
/**
* @param flatbuffers.Builder builder
* @param number a
return 'Rapunzel';
}
+/**
+ * @returns {number}
+ */
+Rapunzel.sizeOf = function() {
+ return 4;
+}
+
/**
* @param {flatbuffers.Builder} builder
* @param {number} hair_length
return 'BookReader';
}
+/**
+ * @returns {number}
+ */
+BookReader.sizeOf = function() {
+ return 4;
+}
+
/**
* @param {flatbuffers.Builder} builder
* @param {number} books_read
return 'Rapunzel';
}
+/**
+ * @returns number
+ */
+static sizeOf():number {
+ return 4;
+}
+
/**
* @param flatbuffers.Builder builder
* @param number hair_length
return 'BookReader';
}
+/**
+ * @returns number
+ */
+static sizeOf():number {
+ return 4;
+}
+
/**
* @param flatbuffers.Builder builder
* @param number books_read