Round-trip a struct via bytes.Buffer
type P struct{ X, Y int }
var buf bytes.Buffer
enc := gob.NewEncoder(&buf)
enc.Encode(P{3, 4})
var q P
dec := gob.NewDecoder(&buf)
dec.Decode(&q)
fmt.Println(q)
Output
{3 4}