1 func readBuf(r io.Reader, n int) []byte {
3 _, err := io.ReadFull(r, buf)
8 func read8 (r io.Reader) uint8 { return readBuf(r, 1)[0] }
9 func read16(r io.Reader) uint16 { return be.Uint16(readBuf(r, 2)) }
10 func read32(r io.Reader) uint32 { return be.Uint32(readBuf(r, 4)) }
11 func read64(r io.Reader) uint64 { return be.Uint64(readBuf(r, 8)) }
19 int8 *p = int8(read8(r))
20 int16 *p = int16(read16(r))
21 int32 *p = int32(read32(r))
22 int64 *p = int64(read64(r))
24 bool switch n := read8(r); n {
30 chk(fmt.Errorf("invalid bool: %d", n))
33 float32 *p = math.Float32frombits(read32(r))
34 float64 *p = math.Float64frombits(read64(r))
38 *p, err = readAOMsg(r)
42 image/color.NRGBA *p = color.NRGBA{A: read8(r), R: read8(r), G: read8(r), B: read8(r)}
44 map[uint16]*NodeMeta {
45 switch ver := read8(r); ver {
50 *p = make(map[uint16]*NodeMeta, n)
54 chk(deserialize(r, nm))
58 chk(fmt.Errorf("unsupported nodemetas version: %d", ver))
62 map[[3]int16]*NodeMeta {
63 r, err := zlib.NewReader(byteReader{r})
66 switch ver := read8(r); ver {
71 *p = make(map[[3]int16]*NodeMeta, n)
75 pos[i] = int16(read16(r))
78 chk(deserialize(r, nm))
82 chk(fmt.Errorf("unsupported nodemetas version: %d", ver))
90 *p, err = readPointedThing(r)
94 []AOMsg { // For AOInitData.Msgs.
95 *p = make([]AOMsg, read8(r))
97 r := &io.LimitedReader{R: r, N: int64(read32(r))}
98 msg, err := readAOMsg(r)
102 chk(fmt.Errorf("%d bytes of trailing data", r.N))
107 []NodeDef { // For ToCltNodeDefs.Defs.
108 *p = make([]NodeDef, read16(r))
109 r := &io.LimitedReader{R: r, N: int64(read32(r))}
111 (*p)[i].deserialize(r)
114 chk(fmt.Errorf("%d bytes of trailing data", r.N))