package flatbuffers
import (
"math"
)
type (
SOffsetT int32
UOffsetT uint32
VOffsetT uint16
)
const (
VtableMetadataFields = 2
)
func GetByte(buf []byte) byte {
return byte(GetUint8(buf))
}
func GetBool(buf []byte) bool {
return buf[0] == 1
}
func GetUint8(buf []byte) (n uint8) {
n = uint8(buf[0])
return
}
func GetUint16(buf []byte) (n uint16) {
_ = buf[1] n |= uint16(buf[0])
n |= uint16(buf[1]) << 8
return
}
func GetUint32(buf []byte) (n uint32) {
_ = buf[3] n |= uint32(buf[0])
n |= uint32(buf[1]) << 8
n |= uint32(buf[2]) << 16
n |= uint32(buf[3]) << 24
return
}
func GetUint64(buf []byte) (n uint64) {
_ = buf[7] n |= uint64(buf[0])
n |= uint64(buf[1]) << 8
n |= uint64(buf[2]) << 16
n |= uint64(buf[3]) << 24
n |= uint64(buf[4]) << 32
n |= uint64(buf[5]) << 40
n |= uint64(buf[6]) << 48
n |= uint64(buf[7]) << 56
return
}
func GetInt8(buf []byte) (n int8) {
n = int8(buf[0])
return
}
func GetInt16(buf []byte) (n int16) {
_ = buf[1] n |= int16(buf[0])
n |= int16(buf[1]) << 8
return
}
func GetInt32(buf []byte) (n int32) {
_ = buf[3] n |= int32(buf[0])
n |= int32(buf[1]) << 8
n |= int32(buf[2]) << 16
n |= int32(buf[3]) << 24
return
}
func GetInt64(buf []byte) (n int64) {
_ = buf[7] n |= int64(buf[0])
n |= int64(buf[1]) << 8
n |= int64(buf[2]) << 16
n |= int64(buf[3]) << 24
n |= int64(buf[4]) << 32
n |= int64(buf[5]) << 40
n |= int64(buf[6]) << 48
n |= int64(buf[7]) << 56
return
}
func GetFloat32(buf []byte) float32 {
x := GetUint32(buf)
return math.Float32frombits(x)
}
func GetFloat64(buf []byte) float64 {
x := GetUint64(buf)
return math.Float64frombits(x)
}
func GetUOffsetT(buf []byte) UOffsetT {
return UOffsetT(GetUint32(buf))
}
func GetSOffsetT(buf []byte) SOffsetT {
return SOffsetT(GetInt32(buf))
}
func GetVOffsetT(buf []byte) VOffsetT {
return VOffsetT(GetUint16(buf))
}
func WriteByte(buf []byte, n byte) {
WriteUint8(buf, uint8(n))
}
func WriteBool(buf []byte, b bool) {
buf[0] = 0
if b {
buf[0] = 1
}
}
func WriteUint8(buf []byte, n uint8) {
buf[0] = byte(n)
}
func WriteUint16(buf []byte, n uint16) {
_ = buf[1] buf[0] = byte(n)
buf[1] = byte(n >> 8)
}
func WriteUint32(buf []byte, n uint32) {
_ = buf[3] buf[0] = byte(n)
buf[1] = byte(n >> 8)
buf[2] = byte(n >> 16)
buf[3] = byte(n >> 24)
}
func WriteUint64(buf []byte, n uint64) {
_ = buf[7] buf[0] = byte(n)
buf[1] = byte(n >> 8)
buf[2] = byte(n >> 16)
buf[3] = byte(n >> 24)
buf[4] = byte(n >> 32)
buf[5] = byte(n >> 40)
buf[6] = byte(n >> 48)
buf[7] = byte(n >> 56)
}
func WriteInt8(buf []byte, n int8) {
buf[0] = byte(n)
}
func WriteInt16(buf []byte, n int16) {
_ = buf[1] buf[0] = byte(n)
buf[1] = byte(n >> 8)
}
func WriteInt32(buf []byte, n int32) {
_ = buf[3] buf[0] = byte(n)
buf[1] = byte(n >> 8)
buf[2] = byte(n >> 16)
buf[3] = byte(n >> 24)
}
func WriteInt64(buf []byte, n int64) {
_ = buf[7] buf[0] = byte(n)
buf[1] = byte(n >> 8)
buf[2] = byte(n >> 16)
buf[3] = byte(n >> 24)
buf[4] = byte(n >> 32)
buf[5] = byte(n >> 40)
buf[6] = byte(n >> 48)
buf[7] = byte(n >> 56)
}
func WriteFloat32(buf []byte, n float32) {
WriteUint32(buf, math.Float32bits(n))
}
func WriteFloat64(buf []byte, n float64) {
WriteUint64(buf, math.Float64bits(n))
}
func WriteVOffsetT(buf []byte, n VOffsetT) {
WriteUint16(buf, uint16(n))
}
func WriteSOffsetT(buf []byte, n SOffsetT) {
WriteInt32(buf, int32(n))
}
func WriteUOffsetT(buf []byte, n UOffsetT) {
WriteUint32(buf, uint32(n))
}