8 type PointedThing interface {
12 func (*PointedNode) pt() {}
13 func (*PointedAO) pt() {}
15 type PointedNode struct {
19 func PointedSameNode(pos [3]int16) PointedThing {
20 return &PointedNode{pos, pos}
23 type PointedAO struct {
27 func writePointedThing(w io.Writer, pt PointedThing) error {
28 buf := make([]byte, 2)
40 if _, err := w.Write(buf); err != nil {
46 return serialize(w, pt)
49 func readPointedThing(r io.Reader) (PointedThing, error) {
50 buf := make([]byte, 2)
51 if _, err := io.ReadFull(r, buf); err != nil {
55 return nil, fmt.Errorf("unsupported PointedThing version: %d", buf[0])
66 return nil, fmt.Errorf("invalid PointedThing type: %d", buf[1])
68 return pt, deserialize(r, pt)