# automatically generated by the FlatBuffers compiler, do not modify

# namespace: tecrpc

import flatbuffers

class Argument(object):
    __slots__ = ['_tab']

    @classmethod
    def GetRootAsArgument(cls, buf, offset):
        n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
        x = Argument()
        x.Init(buf, n + offset)
        return x

    # Argument
    def Init(self, buf, pos):
        self._tab = flatbuffers.table.Table(buf, pos)

    # Argument
    def Type(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos)
        return 1

    # Argument
    def Boolean(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos)
        return 0

    # Argument
    def Text(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
        if o != 0:
            return self._tab.String(o + self._tab.Pos)
        return ""

    # Argument
    def Int8Value(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Int8Flags, o + self._tab.Pos)
        return 0

    # Argument
    def Uint8Value(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Uint8Flags, o + self._tab.Pos)
        return 0

    # Argument
    def Int16Value(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Int16Flags, o + self._tab.Pos)
        return 0

    # Argument
    def Uint16Value(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Uint16Flags, o + self._tab.Pos)
        return 0

    # Argument
    def Int32Value(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos)
        return 0

    # Argument
    def Uint32Value(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(20))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos)
        return 0

    # Argument
    def Int64Value(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Int64Flags, o + self._tab.Pos)
        return 0

    # Argument
    def Uint64Value(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(24))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
        return 0

    # Argument
    def Float32Value(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(26))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos)
        return 0.0

    # Argument
    def Float64Value(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(28))
        if o != 0:
            return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos)
        return 0.0

    # Argument
    def Int8Array(self, j):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30))
        if o != 0:
            a = self._tab.Vector(o)
            return self._tab.Get(flatbuffers.number_types.Int8Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 1))
        return 0

    # Argument
    def Int8ArrayLength(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30))
        if o != 0:
            return self._tab.VectorLen(o)
        return 0

    # Argument
    def Uint8Array(self, j):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(32))
        if o != 0:
            a = self._tab.Vector(o)
            return self._tab.Get(flatbuffers.number_types.Uint8Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 1))
        return 0

    # Argument
    def Uint8ArrayLength(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(32))
        if o != 0:
            return self._tab.VectorLen(o)
        return 0

    # Argument
    def Int16Array(self, j):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(34))
        if o != 0:
            a = self._tab.Vector(o)
            return self._tab.Get(flatbuffers.number_types.Int16Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 2))
        return 0

    # Argument
    def Int16ArrayLength(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(34))
        if o != 0:
            return self._tab.VectorLen(o)
        return 0

    # Argument
    def Uint16Array(self, j):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(36))
        if o != 0:
            a = self._tab.Vector(o)
            return self._tab.Get(flatbuffers.number_types.Uint16Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 2))
        return 0

    # Argument
    def Uint16ArrayLength(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(36))
        if o != 0:
            return self._tab.VectorLen(o)
        return 0

    # Argument
    def Int32Array(self, j):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(38))
        if o != 0:
            a = self._tab.Vector(o)
            return self._tab.Get(flatbuffers.number_types.Int32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
        return 0

    # Argument
    def Int32ArrayLength(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(38))
        if o != 0:
            return self._tab.VectorLen(o)
        return 0

    # Argument
    def Uint32Array(self, j):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(40))
        if o != 0:
            a = self._tab.Vector(o)
            return self._tab.Get(flatbuffers.number_types.Uint32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
        return 0

    # Argument
    def Uint32ArrayLength(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(40))
        if o != 0:
            return self._tab.VectorLen(o)
        return 0

    # Argument
    def Int64Array(self, j):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(42))
        if o != 0:
            a = self._tab.Vector(o)
            return self._tab.Get(flatbuffers.number_types.Int64Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 8))
        return 0

    # Argument
    def Int64ArrayLength(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(42))
        if o != 0:
            return self._tab.VectorLen(o)
        return 0

    # Argument
    def Uint64Array(self, j):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(44))
        if o != 0:
            a = self._tab.Vector(o)
            return self._tab.Get(flatbuffers.number_types.Uint64Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 8))
        return 0

    # Argument
    def Uint64ArrayLength(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(44))
        if o != 0:
            return self._tab.VectorLen(o)
        return 0

    # Argument
    def Float32Array(self, j):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(46))
        if o != 0:
            a = self._tab.Vector(o)
            return self._tab.Get(flatbuffers.number_types.Float32Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
        return 0

    # Argument
    def Float32ArrayLength(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(46))
        if o != 0:
            return self._tab.VectorLen(o)
        return 0

    # Argument
    def Float64Array(self, j):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(48))
        if o != 0:
            a = self._tab.Vector(o)
            return self._tab.Get(flatbuffers.number_types.Float64Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 8))
        return 0

    # Argument
    def Float64ArrayLength(self):
        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(48))
        if o != 0:
            return self._tab.VectorLen(o)
        return 0

def ArgumentStart(builder): builder.StartObject(23)
def ArgumentAddType(builder, type): builder.PrependUint32Slot(0, type, 1)
def ArgumentAddBoolean(builder, boolean): builder.PrependBoolSlot(1, boolean, 0)
def ArgumentAddText(builder, text): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(text), 0)
def ArgumentAddInt8Value(builder, int8Value): builder.PrependInt8Slot(3, int8Value, 0)
def ArgumentAddUint8Value(builder, uint8Value): builder.PrependUint8Slot(4, uint8Value, 0)
def ArgumentAddInt16Value(builder, int16Value): builder.PrependInt16Slot(5, int16Value, 0)
def ArgumentAddUint16Value(builder, uint16Value): builder.PrependUint16Slot(6, uint16Value, 0)
def ArgumentAddInt32Value(builder, int32Value): builder.PrependInt32Slot(7, int32Value, 0)
def ArgumentAddUint32Value(builder, uint32Value): builder.PrependUint32Slot(8, uint32Value, 0)
def ArgumentAddInt64Value(builder, int64Value): builder.PrependInt64Slot(9, int64Value, 0)
def ArgumentAddUint64Value(builder, uint64Value): builder.PrependUint64Slot(10, uint64Value, 0)
def ArgumentAddFloat32Value(builder, float32Value): builder.PrependFloat32Slot(11, float32Value, 0.0)
def ArgumentAddFloat64Value(builder, float64Value): builder.PrependFloat64Slot(12, float64Value, 0.0)
def ArgumentAddInt8Array(builder, int8Array): builder.PrependUOffsetTRelativeSlot(13, flatbuffers.number_types.UOffsetTFlags.py_type(int8Array), 0)
def ArgumentStartInt8ArrayVector(builder, numElems): return builder.StartVector(1, numElems, 1)
def ArgumentAddUint8Array(builder, uint8Array): builder.PrependUOffsetTRelativeSlot(14, flatbuffers.number_types.UOffsetTFlags.py_type(uint8Array), 0)
def ArgumentStartUint8ArrayVector(builder, numElems): return builder.StartVector(1, numElems, 1)
def ArgumentAddInt16Array(builder, int16Array): builder.PrependUOffsetTRelativeSlot(15, flatbuffers.number_types.UOffsetTFlags.py_type(int16Array), 0)
def ArgumentStartInt16ArrayVector(builder, numElems): return builder.StartVector(2, numElems, 2)
def ArgumentAddUint16Array(builder, uint16Array): builder.PrependUOffsetTRelativeSlot(16, flatbuffers.number_types.UOffsetTFlags.py_type(uint16Array), 0)
def ArgumentStartUint16ArrayVector(builder, numElems): return builder.StartVector(2, numElems, 2)
def ArgumentAddInt32Array(builder, int32Array): builder.PrependUOffsetTRelativeSlot(17, flatbuffers.number_types.UOffsetTFlags.py_type(int32Array), 0)
def ArgumentStartInt32ArrayVector(builder, numElems): return builder.StartVector(4, numElems, 4)
def ArgumentAddUint32Array(builder, uint32Array): builder.PrependUOffsetTRelativeSlot(18, flatbuffers.number_types.UOffsetTFlags.py_type(uint32Array), 0)
def ArgumentStartUint32ArrayVector(builder, numElems): return builder.StartVector(4, numElems, 4)
def ArgumentAddInt64Array(builder, int64Array): builder.PrependUOffsetTRelativeSlot(19, flatbuffers.number_types.UOffsetTFlags.py_type(int64Array), 0)
def ArgumentStartInt64ArrayVector(builder, numElems): return builder.StartVector(8, numElems, 8)
def ArgumentAddUint64Array(builder, uint64Array): builder.PrependUOffsetTRelativeSlot(20, flatbuffers.number_types.UOffsetTFlags.py_type(uint64Array), 0)
def ArgumentStartUint64ArrayVector(builder, numElems): return builder.StartVector(8, numElems, 8)
def ArgumentAddFloat32Array(builder, float32Array): builder.PrependUOffsetTRelativeSlot(21, flatbuffers.number_types.UOffsetTFlags.py_type(float32Array), 0)
def ArgumentStartFloat32ArrayVector(builder, numElems): return builder.StartVector(4, numElems, 4)
def ArgumentAddFloat64Array(builder, float64Array): builder.PrependUOffsetTRelativeSlot(22, flatbuffers.number_types.UOffsetTFlags.py_type(float64Array), 0)
def ArgumentStartFloat64ArrayVector(builder, numElems): return builder.StartVector(8, numElems, 8)
def ArgumentEnd(builder): return builder.EndObject()
