1 func write8(w io.Writer, x uint8) {
2 _, err := w.Write([]byte{x})
6 func write16(w io.Writer, x uint16) {
13 func write32(w io.Writer, x uint32) {
14 buf := make([]byte, 4)
16 _, err := w.Write(buf)
20 func write64(w io.Writer, x uint64) {
21 buf := make([]byte, 8)
23 _, err := w.Write(buf)
27 byte write8(w, uint8(x))
28 uint8 write8(w, uint8(x))
29 uint16 write16(w, uint16(x))
30 uint32 write32(w, uint32(x))
31 uint64 write64(w, uint64(x))
33 int8 write8(w, uint8(x))
34 int16 write16(w, uint16(x))
35 int32 write32(w, uint32(x))
36 int64 write64(w, uint64(x))
38 bool if x { write8(w, 1) } else { write8(w, 0) }
40 float32 write32(w, math.Float32bits(x))
41 float64 write64(w, math.Float64bits(x))
43 AOMsg writeAOMsg(w, x)
45 image/color.NRGBA w.Write([]byte{x.A, x.R, x.G, x.B})
47 map[uint16]*NodeMeta {
48 w := zlib.NewWriter(w)
54 if len(x) > math.MaxUint16 {
57 write16(w, uint16(len(x)))
58 keys := make([]uint16, 0, len(x))
60 keys = append(keys, key)
62 sort.Slice(keys, func(i, j int) bool {
63 i2pos := func(i int) [3]int16 {
64 return Blkpos2Pos([3]int16{}, keys[i])
67 p, q := i2pos(i), i2pos(j)
80 for _, key := range keys {
82 chk(serialize(w, x[key]))
89 map[[3]int16]*NodeMeta {
90 w := zlib.NewWriter(w)
96 if len(x) > math.MaxUint16 {
99 write16(w, uint16(len(x)))
100 keys := make([][3]int16, 0, len(x))
102 keys = append(keys, key)
104 sort.Slice(keys, func(i, j int) bool {
105 p, q := keys[i], keys[j]
118 for _, key := range keys {
119 for _, n := range key {
120 write16(w, uint16(n))
122 chk(serialize(w, x[key]))
129 PointedThing chk(writePointedThing(w, x))
131 []AOMsg { // For AOInitData.Msgs
132 if len(x) > math.MaxUint8 {
135 write8(w, uint8(len(x)))
136 for _, msg := range x {
138 chk(writeAOMsg(&b, msg))
139 if b.Len() > math.MaxUint32 {
142 write32(w, uint32(b.Len()))
143 _, err := b.WriteTo(w)
148 []NodeDef { // For ToCltNodeDefs.Defs
149 if len(x) > math.MaxUint16 {
152 write16(w, uint16(len(x)))
157 if b.Len() > math.MaxUint32 {
160 write32(w, uint32(b.Len()))
161 _, err := b.WriteTo(w)