// automatically generated by the FlatBuffers compiler, do not modify @file:OptIn(kotlin.ExperimentalUnsignedTypes::class) package link.roadio.riff.state.fbs import com.google.flatbuffers.kotlin.* import kotlin.jvm.JvmInline @Suppress("unused") class UserStateCommand : Table() { fun init(i: Int, buffer: ReadWriteBuffer) : UserStateCommand = reset(i, buffer) val protocolVersion : UInt get() = lookupField(4, 1u ) { bb.getUInt(it + bufferPos) } val rootId : ULong? get() = lookupField(6, null ) { bb.getULong(it + bufferPos) } val writerId : ULong? get() = lookupField(8, null ) { bb.getULong(it + bufferPos) } fun writes(j: Int) : link.roadio.riff.state.fbs.UserStateWrite? = writes(link.roadio.riff.state.fbs.UserStateWrite(), j) fun writes(obj: link.roadio.riff.state.fbs.UserStateWrite, j: Int) : link.roadio.riff.state.fbs.UserStateWrite? = lookupField(10, null ) { obj.init(indirect(vector(it) + j * 4), bb) } val writesLength : Int get() = lookupField(10, 0 ) { vectorLength(it) } companion object { fun validateVersion() = VERSION_2_0_8 fun asRoot(buffer: ReadWriteBuffer) : UserStateCommand = asRoot(buffer, UserStateCommand()) fun asRoot(buffer: ReadWriteBuffer, obj: UserStateCommand) : UserStateCommand = obj.init(buffer.getInt(buffer.limit) + buffer.limit, buffer) fun UserStateCommandBufferHasIdentifier(buffer: ReadWriteBuffer) : Boolean = hasIdentifier(buffer, "UCMD") fun createUserStateCommand(builder: FlatBufferBuilder, protocolVersion: UInt, rootId: ULong?, writerId: ULong?, writesOffset: VectorOffset) : Offset { builder.startTable(4) writerId?.run { addWriterId(builder, writerId) } rootId?.run { addRootId(builder, rootId) } addWrites(builder, writesOffset) addProtocolVersion(builder, protocolVersion) return endUserStateCommand(builder) } fun startUserStateCommand(builder: FlatBufferBuilder) = builder.startTable(4) fun addProtocolVersion(builder: FlatBufferBuilder, protocolVersion: UInt) = builder.add(0, protocolVersion, 1u) fun addRootId(builder: FlatBufferBuilder, rootId: ULong) = builder.add(1, rootId, null) fun addWriterId(builder: FlatBufferBuilder, writerId: ULong) = builder.add(2, writerId, null) fun addWrites(builder: FlatBufferBuilder, writes: VectorOffset) = builder.add(3, writes, 0) fun createWritesVector(builder: FlatBufferBuilder, vector:link.roadio.riff.state.fbs.UserStateWriteOffsetArray) : VectorOffset { builder.startVector(4, vector.size, 4) for (i in vector.size - 1 downTo 0) { builder.add(vector[i]) } return builder.endVector() } fun startWritesVector(builder: FlatBufferBuilder, numElems: Int) = builder.startVector(4, numElems, 4) fun endUserStateCommand(builder: FlatBufferBuilder) : Offset { val o: Offset = builder.endTable() builder.required(o, 10, "writes") return o } fun finishUserStateCommandBuffer(builder: FlatBufferBuilder, offset: Offset) = builder.finish(offset, "UCMD") fun finishSizePrefixedUserStateCommandBuffer(builder: FlatBufferBuilder, offset: Offset) = builder.finishSizePrefixed(offset, "UCMD") } } typealias UserStateCommandOffsetArray = OffsetArray inline fun UserStateCommandOffsetArray(size: Int, crossinline call: (Int) -> Offset): UserStateCommandOffsetArray = UserStateCommandOffsetArray(IntArray(size) { call(it).value })