go-hep.org/x/hep@v0.38.1/brio/cmd/brio-gen/internal/gen/testdata/brio_gen_golden.go.txt (about)

     1  // Code generated by brio-gen; DO NOT EDIT.
     2  
     3  package pkg
     4  
     5  import (
     6  	"encoding/binary"
     7  	"math"
     8  )
     9  
    10  // MarshalBinary implements encoding.BinaryMarshaler
    11  func (o *T1) MarshalBinary() (data []byte, err error) {
    12  	var buf [8]byte
    13  	switch o.b {
    14  	case false:
    15  		data = append(data, uint8(0))
    16  	default:
    17  		data = append(data, uint8(1))
    18  	}
    19  	binary.LittleEndian.PutUint64(buf[:8], uint64(o.u))
    20  	data = append(data, buf[:8]...)
    21  	data = append(data, byte(o.u8))
    22  	binary.LittleEndian.PutUint16(buf[:2], uint16(o.u16))
    23  	data = append(data, buf[:2]...)
    24  	binary.LittleEndian.PutUint32(buf[:4], uint32(o.u32))
    25  	data = append(data, buf[:4]...)
    26  	binary.LittleEndian.PutUint64(buf[:8], uint64(o.u64))
    27  	data = append(data, buf[:8]...)
    28  	binary.LittleEndian.PutUint64(buf[:8], uint64(o.i))
    29  	data = append(data, buf[:8]...)
    30  	data = append(data, byte(o.i8))
    31  	binary.LittleEndian.PutUint16(buf[:2], uint16(o.i16))
    32  	data = append(data, buf[:2]...)
    33  	binary.LittleEndian.PutUint32(buf[:4], uint32(o.i32))
    34  	data = append(data, buf[:4]...)
    35  	binary.LittleEndian.PutUint64(buf[:8], uint64(o.i64))
    36  	data = append(data, buf[:8]...)
    37  	binary.LittleEndian.PutUint32(buf[:4], math.Float32bits(o.f32))
    38  	data = append(data, buf[:4]...)
    39  	binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.f64))
    40  	data = append(data, buf[:8]...)
    41  	binary.LittleEndian.PutUint64(buf[:4], math.Float32bits(real(o.c64)))
    42  	data = append(data, buf[:4]...)
    43  	binary.LittleEndian.PutUint64(buf[:4], math.Float32bits(imag(o.c64)))
    44  	data = append(data, buf[:4]...)
    45  	binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(real(o.c128)))
    46  	data = append(data, buf[:8]...)
    47  	binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(imag(o.c128)))
    48  	data = append(data, buf[:8]...)
    49  	binary.LittleEndian.PutUint64(buf[:8], uint64(len(o.str)))
    50  	data = append(data, buf[:8]...)
    51  	data = append(data, []byte(o.str)...)
    52  	binary.LittleEndian.PutUint32(buf[:4], uint32(o.rune))
    53  	data = append(data, buf[:4]...)
    54  	binary.LittleEndian.PutUint64(buf[:8], uint64(len(o.bs)))
    55  	data = append(data, buf[:8]...)
    56  	data = append(data, o.bs...)
    57  	for i := range o.arri64 {
    58  		o := &o.arri64[i]
    59  		binary.LittleEndian.PutUint64(buf[:8], uint64(o))
    60  		data = append(data, buf[:8]...)
    61  	}
    62  	for i := range o.arrTime {
    63  		o := &o.arrTime[i]
    64  		{
    65  			sub, err := o.MarshalBinary()
    66  			if err != nil {
    67  				return nil, err
    68  			}
    69  			binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub)))
    70  			data = append(data, buf[:8]...)
    71  			data = append(data, sub...)
    72  		}
    73  	}
    74  	binary.LittleEndian.PutUint64(buf[:8], uint64(len(o.slii64)))
    75  	data = append(data, buf[:8]...)
    76  	for i := range o.slii64 {
    77  		o := &o.slii64[i]
    78  		binary.LittleEndian.PutUint64(buf[:8], uint64(o))
    79  		data = append(data, buf[:8]...)
    80  	}
    81  	binary.LittleEndian.PutUint64(buf[:8], uint64(len(o.sliTime)))
    82  	data = append(data, buf[:8]...)
    83  	for i := range o.sliTime {
    84  		o := &o.sliTime[i]
    85  		{
    86  			sub, err := o.MarshalBinary()
    87  			if err != nil {
    88  				return nil, err
    89  			}
    90  			binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub)))
    91  			data = append(data, buf[:8]...)
    92  			data = append(data, sub...)
    93  		}
    94  	}
    95  	{
    96  		v := *o.ptri64
    97  		binary.LittleEndian.PutUint64(buf[:8], uint64(v))
    98  		data = append(data, buf[:8]...)
    99  	}
   100  	{
   101  		sub, err := o.t2.MarshalBinary()
   102  		if err != nil {
   103  			return nil, err
   104  		}
   105  		binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub)))
   106  		data = append(data, buf[:8]...)
   107  		data = append(data, sub...)
   108  	}
   109  	binary.LittleEndian.PutUint64(buf[:8], uint64(len(o.t2s)))
   110  	data = append(data, buf[:8]...)
   111  	for i := range o.t2s {
   112  		o := &o.t2s[i]
   113  		{
   114  			sub, err := o.MarshalBinary()
   115  			if err != nil {
   116  				return nil, err
   117  			}
   118  			binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub)))
   119  			data = append(data, buf[:8]...)
   120  			data = append(data, sub...)
   121  		}
   122  	}
   123  	binary.LittleEndian.PutUint64(buf[:8], uint64(len(o.t2ptrs)))
   124  	data = append(data, buf[:8]...)
   125  	for i := range o.t2ptrs {
   126  		o := o.t2ptrs[i]
   127  		{
   128  			v := *o
   129  			{
   130  				sub, err := v.MarshalBinary()
   131  				if err != nil {
   132  					return nil, err
   133  				}
   134  				binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub)))
   135  				data = append(data, buf[:8]...)
   136  				data = append(data, sub...)
   137  			}
   138  		}
   139  	}
   140  	binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.data.f64))
   141  	data = append(data, buf[:8]...)
   142  	binary.LittleEndian.PutUint16(buf[:2], uint16(o.myU16))
   143  	data = append(data, buf[:2]...)
   144  	return data, err
   145  }
   146  
   147  // UnmarshalBinary implements encoding.BinaryUnmarshaler
   148  func (o *T1) UnmarshalBinary(data []byte) (err error) {
   149  	switch data[i] {
   150  	case 0:
   151  		o.b = false
   152  	default:
   153  		o.b = true
   154  	}
   155  	data = data[1:]
   156  	o.u = uint(binary.LittleEndian.Uint64(data[:8]))
   157  	data = data[8:]
   158  	o.u8 = uint8(data[0])
   159  	data = data[1:]
   160  	o.u16 = uint16(binary.LittleEndian.Uint16(data[:2]))
   161  	data = data[2:]
   162  	o.u32 = uint32(binary.LittleEndian.Uint32(data[:4]))
   163  	data = data[4:]
   164  	o.u64 = uint64(binary.LittleEndian.Uint64(data[:8]))
   165  	data = data[8:]
   166  	o.i = int(binary.LittleEndian.Uint64(data[:8]))
   167  	data = data[8:]
   168  	o.i8 = int8(data[0])
   169  	data = data[1:]
   170  	o.i16 = int16(binary.LittleEndian.Uint16(data[:2]))
   171  	data = data[2:]
   172  	o.i32 = int32(binary.LittleEndian.Uint32(data[:4]))
   173  	data = data[4:]
   174  	o.i64 = int64(binary.LittleEndian.Uint64(data[:8]))
   175  	data = data[8:]
   176  	o.f32 = float32(math.Float32frombits(binary.LittleEndian.Uint32(data[:4])))
   177  	data = data[4:]
   178  	o.f64 = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8])))
   179  	data = data[8:]
   180  	o.c64 = complex64(complex(math.Float32frombits(binary.LittleEndian.Uint32(data[:4])), math.Float32frombits(binary.LittleEndian.Uint32(data[4:8]))))
   181  	data = data[8:]
   182  	o.c128 = complex128(complex(math.Float64frombits(binary.LittleEndian.Uint64(data[:8])), math.Float64frombits(binary.LittleEndian.Uint64(data[8:16]))))
   183  	data = data[16:]
   184  	{
   185  		n := int(binary.LittleEndian.Uint64(data[:8]))
   186  		data = data[8:]
   187  		o.str = string(data[:n])
   188  		data = data[n:]
   189  	}
   190  	o.rune = rune(binary.LittleEndian.Uint32(data[:4]))
   191  	data = data[4:]
   192  	{
   193  		n := int(binary.LittleEndian.Uint64(data[:8]))
   194  		o.bs = make([]byte, n)
   195  		data = data[8:]
   196  		o.bs = append(o.bs, data[:n]...)
   197  		data = data[n:]
   198  	}
   199  	for i := range o.arri64 {
   200  		o.arri64[i] = int64(binary.LittleEndian.Uint64(data[:8]))
   201  		data = data[8:]
   202  	}
   203  	for i := range o.arrTime {
   204  		oi := &o.arrTime[i]
   205  		{
   206  			n := int(binary.LittleEndian.Uint64(data[:8]))
   207  			data = data[8:]
   208  			err = oi.UnmarshalBinary(data[:n])
   209  			if err != nil {
   210  				return err
   211  			}
   212  			data = data[n:]
   213  		}
   214  	}
   215  	{
   216  		n := int(binary.LittleEndian.Uint64(data[:8]))
   217  		o.slii64 = make([]int64, n)
   218  		data = data[8:]
   219  		for i := range o.slii64 {
   220  			o.slii64[i] = int64(binary.LittleEndian.Uint64(data[:8]))
   221  			data = data[8:]
   222  		}
   223  	}
   224  	{
   225  		n := int(binary.LittleEndian.Uint64(data[:8]))
   226  		o.sliTime = make([]time.Time, n)
   227  		data = data[8:]
   228  		for i := range o.sliTime {
   229  			oi := &o.sliTime[i]
   230  			{
   231  				n := int(binary.LittleEndian.Uint64(data[:8]))
   232  				data = data[8:]
   233  				err = oi.UnmarshalBinary(data[:n])
   234  				if err != nil {
   235  					return err
   236  				}
   237  				data = data[n:]
   238  			}
   239  		}
   240  	}
   241  	{
   242  		var v int64
   243  		v = int64(binary.LittleEndian.Uint64(data[:8]))
   244  		data = data[8:]
   245  		o.ptri64 = &v
   246  
   247  	}
   248  	{
   249  		n := int(binary.LittleEndian.Uint64(data[:8]))
   250  		data = data[8:]
   251  		err = o.t2.UnmarshalBinary(data[:n])
   252  		if err != nil {
   253  			return err
   254  		}
   255  		data = data[n:]
   256  	}
   257  	{
   258  		n := int(binary.LittleEndian.Uint64(data[:8]))
   259  		o.t2s = make([]T2, n)
   260  		data = data[8:]
   261  		for i := range o.t2s {
   262  			oi := &o.t2s[i]
   263  			{
   264  				n := int(binary.LittleEndian.Uint64(data[:8]))
   265  				data = data[8:]
   266  				err = oi.UnmarshalBinary(data[:n])
   267  				if err != nil {
   268  					return err
   269  				}
   270  				data = data[n:]
   271  			}
   272  		}
   273  	}
   274  	{
   275  		n := int(binary.LittleEndian.Uint64(data[:8]))
   276  		o.t2ptrs = make([]*T2, n)
   277  		data = data[8:]
   278  		for i := range o.t2ptrs {
   279  			var oi T2
   280  			{
   281  				var v T2
   282  				{
   283  					n := int(binary.LittleEndian.Uint64(data[:8]))
   284  					data = data[8:]
   285  					err = v.UnmarshalBinary(data[:n])
   286  					if err != nil {
   287  						return err
   288  					}
   289  					data = data[n:]
   290  				}
   291  				oi = &v
   292  
   293  			}
   294  			o.t2ptrs[i] = oi
   295  		}
   296  	}
   297  	o.data.f64 = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8])))
   298  	data = data[8:]
   299  	o.myU16 = U16(binary.LittleEndian.Uint16(data[:2]))
   300  	data = data[2:]
   301  	_ = data
   302  	return err
   303  }
   304  
   305  // MarshalBinary implements encoding.BinaryMarshaler
   306  func (o *T2) MarshalBinary() (data []byte, err error) {
   307  	var buf [8]byte
   308  	binary.LittleEndian.PutUint64(buf[:8], uint64(o.ID))
   309  	data = append(data, buf[:8]...)
   310  	return data, err
   311  }
   312  
   313  // UnmarshalBinary implements encoding.BinaryUnmarshaler
   314  func (o *T2) UnmarshalBinary(data []byte) (err error) {
   315  	o.ID = int64(binary.LittleEndian.Uint64(data[:8]))
   316  	data = data[8:]
   317  	_ = data
   318  	return err
   319  }
   320  
   321  // MarshalBinary implements encoding.BinaryMarshaler
   322  func (o *T3) MarshalBinary() (data []byte, err error) {
   323  	var buf [8]byte
   324  	{
   325  		sub, err := o.Time.MarshalBinary()
   326  		if err != nil {
   327  			return nil, err
   328  		}
   329  		binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub)))
   330  		data = append(data, buf[:8]...)
   331  		data = append(data, sub...)
   332  	}
   333  	return data, err
   334  }
   335  
   336  // UnmarshalBinary implements encoding.BinaryUnmarshaler
   337  func (o *T3) UnmarshalBinary(data []byte) (err error) {
   338  	{
   339  		n := int(binary.LittleEndian.Uint64(data[:8]))
   340  		data = data[8:]
   341  		err = o.Time.UnmarshalBinary(data[:n])
   342  		if err != nil {
   343  			return err
   344  		}
   345  		data = data[n:]
   346  	}
   347  	_ = data
   348  	return err
   349  }