mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-13 16:15:26 +00:00
[Python/JS/TS] Codegen SizeOf method for structs (#6136)
* [Python] Codegen SizeOf classmethod for structs This codegens a `SizeOf()` classmethod for all structs since we can't determine the size of a FlatBuffer generated struct from Python otherwise. * [JS/TS] Codegen sizeOf static method for structs This codegens a `sizeOf()` static method for all structs since we can't determine the size of a FlatBuffer generated struct from JavaScript or TypeScript otherwise.
This commit is contained in:
@@ -9,6 +9,10 @@ np = import_numpy()
|
||||
class Ability(object):
|
||||
__slots__ = ['_tab']
|
||||
|
||||
@classmethod
|
||||
def SizeOf(cls):
|
||||
return 8
|
||||
|
||||
# Ability
|
||||
def Init(self, buf, pos):
|
||||
self._tab = flatbuffers.table.Table(buf, pos)
|
||||
|
||||
@@ -9,6 +9,10 @@ np = import_numpy()
|
||||
class ArrayStruct(object):
|
||||
__slots__ = ['_tab']
|
||||
|
||||
@classmethod
|
||||
def SizeOf(cls):
|
||||
return 160
|
||||
|
||||
# ArrayStruct
|
||||
def Init(self, buf, pos):
|
||||
self._tab = flatbuffers.table.Table(buf, pos)
|
||||
|
||||
@@ -9,6 +9,10 @@ np = import_numpy()
|
||||
class NestedStruct(object):
|
||||
__slots__ = ['_tab']
|
||||
|
||||
@classmethod
|
||||
def SizeOf(cls):
|
||||
return 32
|
||||
|
||||
# NestedStruct
|
||||
def Init(self, buf, pos):
|
||||
self._tab = flatbuffers.table.Table(buf, pos)
|
||||
|
||||
@@ -9,6 +9,10 @@ np = import_numpy()
|
||||
class Test(object):
|
||||
__slots__ = ['_tab']
|
||||
|
||||
@classmethod
|
||||
def SizeOf(cls):
|
||||
return 4
|
||||
|
||||
# Test
|
||||
def Init(self, buf, pos):
|
||||
self._tab = flatbuffers.table.Table(buf, pos)
|
||||
|
||||
@@ -9,6 +9,10 @@ np = import_numpy()
|
||||
class Vec3(object):
|
||||
__slots__ = ['_tab']
|
||||
|
||||
@classmethod
|
||||
def SizeOf(cls):
|
||||
return 32
|
||||
|
||||
# Vec3
|
||||
def Init(self, buf, pos):
|
||||
self._tab = flatbuffers.table.Table(buf, pos)
|
||||
|
||||
@@ -342,6 +342,13 @@ MyGame.Example.Test.prototype.mutate_b = function(value) {
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* @returns {number}
|
||||
*/
|
||||
MyGame.Example.Test.sizeOf = function() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {flatbuffers.Builder} builder
|
||||
* @param {number} a
|
||||
@@ -573,6 +580,13 @@ MyGame.Example.Vec3.prototype.test3 = function(obj) {
|
||||
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
|
||||
@@ -659,6 +673,13 @@ MyGame.Example.Ability.prototype.mutate_distance = function(value) {
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* @returns {number}
|
||||
*/
|
||||
MyGame.Example.Ability.sizeOf = function() {
|
||||
return 8;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {flatbuffers.Builder} builder
|
||||
* @param {number} id
|
||||
|
||||
@@ -376,6 +376,13 @@ mutate_b(value:number):boolean {
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* @returns number
|
||||
*/
|
||||
static sizeOf():number {
|
||||
return 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param flatbuffers.Builder builder
|
||||
* @param number a
|
||||
@@ -668,6 +675,13 @@ test3(obj?:MyGame.Example.Test):MyGame.Example.Test|null {
|
||||
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
|
||||
@@ -811,6 +825,13 @@ mutate_distance(value:number):boolean {
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* @returns number
|
||||
*/
|
||||
static sizeOf():number {
|
||||
return 8;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param flatbuffers.Builder builder
|
||||
* @param number id
|
||||
|
||||
@@ -9,6 +9,10 @@ np = import_numpy()
|
||||
class StructInNestedNS(object):
|
||||
__slots__ = ['_tab']
|
||||
|
||||
@classmethod
|
||||
def SizeOf(cls):
|
||||
return 8
|
||||
|
||||
# StructInNestedNS
|
||||
def Init(self, buf, pos):
|
||||
self._tab = flatbuffers.table.Table(buf, pos)
|
||||
|
||||
@@ -205,6 +205,13 @@ NamespaceA.NamespaceB.StructInNestedNS.getFullyQualifiedName = function() {
|
||||
return 'NamespaceA.NamespaceB.StructInNestedNS';
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {number}
|
||||
*/
|
||||
NamespaceA.NamespaceB.StructInNestedNS.sizeOf = function() {
|
||||
return 8;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {flatbuffers.Builder} builder
|
||||
* @param {number} a
|
||||
|
||||
@@ -204,6 +204,13 @@ static getFullyQualifiedName():string {
|
||||
return 'NamespaceA.NamespaceB.StructInNestedNS';
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns number
|
||||
*/
|
||||
static sizeOf():number {
|
||||
return 8;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param flatbuffers.Builder builder
|
||||
* @param number a
|
||||
|
||||
@@ -185,6 +185,13 @@ Rapunzel.getFullyQualifiedName = function() {
|
||||
return 'Rapunzel';
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {number}
|
||||
*/
|
||||
Rapunzel.sizeOf = function() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {flatbuffers.Builder} builder
|
||||
* @param {number} hair_length
|
||||
@@ -245,6 +252,13 @@ BookReader.getFullyQualifiedName = function() {
|
||||
return 'BookReader';
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {number}
|
||||
*/
|
||||
BookReader.sizeOf = function() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {flatbuffers.Builder} builder
|
||||
* @param {number} books_read
|
||||
|
||||
@@ -221,6 +221,13 @@ static getFullyQualifiedName():string {
|
||||
return 'Rapunzel';
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns number
|
||||
*/
|
||||
static sizeOf():number {
|
||||
return 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param flatbuffers.Builder builder
|
||||
* @param number hair_length
|
||||
@@ -310,6 +317,13 @@ static getFullyQualifiedName():string {
|
||||
return 'BookReader';
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns number
|
||||
*/
|
||||
static sizeOf():number {
|
||||
return 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param flatbuffers.Builder builder
|
||||
* @param number books_read
|
||||
|
||||
Reference in New Issue
Block a user