go-hep.org/x/hep@v0.38.1/hbook/points_brio.go (about) 1 // Code generated by brio-gen; DO NOT EDIT. 2 3 package hbook 4 5 import ( 6 "encoding/binary" 7 "math" 8 ) 9 10 // MarshalBinary implements encoding.BinaryMarshaler 11 func (o *Point2D) MarshalBinary() (data []byte, err error) { 12 var buf [8]byte 13 binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.X)) 14 data = append(data, buf[:8]...) 15 binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.Y)) 16 data = append(data, buf[:8]...) 17 { 18 sub, err := o.ErrX.MarshalBinary() 19 if err != nil { 20 return nil, err 21 } 22 binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub))) 23 data = append(data, buf[:8]...) 24 data = append(data, sub...) 25 } 26 { 27 sub, err := o.ErrY.MarshalBinary() 28 if err != nil { 29 return nil, err 30 } 31 binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub))) 32 data = append(data, buf[:8]...) 33 data = append(data, sub...) 34 } 35 return data, err 36 } 37 38 // UnmarshalBinary implements encoding.BinaryUnmarshaler 39 func (o *Point2D) UnmarshalBinary(data []byte) (err error) { 40 o.X = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8]))) 41 data = data[8:] 42 o.Y = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8]))) 43 data = data[8:] 44 { 45 n := int(binary.LittleEndian.Uint64(data[:8])) 46 data = data[8:] 47 err = o.ErrX.UnmarshalBinary(data[:n]) 48 if err != nil { 49 return err 50 } 51 data = data[n:] 52 } 53 { 54 n := int(binary.LittleEndian.Uint64(data[:8])) 55 data = data[8:] 56 err = o.ErrY.UnmarshalBinary(data[:n]) 57 if err != nil { 58 return err 59 } 60 data = data[n:] 61 } 62 _ = data 63 return err 64 }