Austin Schuh | e89fa2d | 2019-08-14 20:24:23 -0700 | [diff] [blame^] | 1 | package flatbuffers |
| 2 | |
| 3 | import ( |
| 4 | "unsafe" |
| 5 | ) |
| 6 | |
| 7 | const ( |
| 8 | // See http://golang.org/ref/spec#Numeric_types |
| 9 | |
| 10 | // SizeUint8 is the byte size of a uint8. |
| 11 | SizeUint8 = 1 |
| 12 | // SizeUint16 is the byte size of a uint16. |
| 13 | SizeUint16 = 2 |
| 14 | // SizeUint32 is the byte size of a uint32. |
| 15 | SizeUint32 = 4 |
| 16 | // SizeUint64 is the byte size of a uint64. |
| 17 | SizeUint64 = 8 |
| 18 | |
| 19 | // SizeInt8 is the byte size of a int8. |
| 20 | SizeInt8 = 1 |
| 21 | // SizeInt16 is the byte size of a int16. |
| 22 | SizeInt16 = 2 |
| 23 | // SizeInt32 is the byte size of a int32. |
| 24 | SizeInt32 = 4 |
| 25 | // SizeInt64 is the byte size of a int64. |
| 26 | SizeInt64 = 8 |
| 27 | |
| 28 | // SizeFloat32 is the byte size of a float32. |
| 29 | SizeFloat32 = 4 |
| 30 | // SizeFloat64 is the byte size of a float64. |
| 31 | SizeFloat64 = 8 |
| 32 | |
| 33 | // SizeByte is the byte size of a byte. |
| 34 | // The `byte` type is aliased (by Go definition) to uint8. |
| 35 | SizeByte = 1 |
| 36 | |
| 37 | // SizeBool is the byte size of a bool. |
| 38 | // The `bool` type is aliased (by flatbuffers convention) to uint8. |
| 39 | SizeBool = 1 |
| 40 | |
| 41 | // SizeSOffsetT is the byte size of an SOffsetT. |
| 42 | // The `SOffsetT` type is aliased (by flatbuffers convention) to int32. |
| 43 | SizeSOffsetT = 4 |
| 44 | // SizeUOffsetT is the byte size of an UOffsetT. |
| 45 | // The `UOffsetT` type is aliased (by flatbuffers convention) to uint32. |
| 46 | SizeUOffsetT = 4 |
| 47 | // SizeVOffsetT is the byte size of an VOffsetT. |
| 48 | // The `VOffsetT` type is aliased (by flatbuffers convention) to uint16. |
| 49 | SizeVOffsetT = 2 |
| 50 | ) |
| 51 | |
| 52 | // byteSliceToString converts a []byte to string without a heap allocation. |
| 53 | func byteSliceToString(b []byte) string { |
| 54 | return *(*string)(unsafe.Pointer(&b)) |
| 55 | } |