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  }