go-hep.org/x/hep@v0.38.1/brio/cmd/brio-gen/testdata/briotest_brio.go (about) 1 // Code generated by brio-gen; DO NOT EDIT. 2 3 package briotest 4 5 import ( 6 "encoding/binary" 7 "math" 8 ) 9 10 // MarshalBinary implements encoding.BinaryMarshaler 11 func (o *Hist) MarshalBinary() (data []byte, err error) { 12 var buf [8]byte 13 binary.LittleEndian.PutUint64(buf[:8], uint64(len(o.Name))) 14 data = append(data, buf[:8]...) 15 data = append(data, []byte(o.Name)...) 16 binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.Data.X)) 17 data = append(data, buf[:8]...) 18 binary.LittleEndian.PutUint64(buf[:8], uint64(o.i)) 19 data = append(data, buf[:8]...) 20 binary.LittleEndian.PutUint64(buf[:8], uint64(o.u)) 21 data = append(data, buf[:8]...) 22 data = append(data, byte(o.i8)) 23 binary.LittleEndian.PutUint16(buf[:2], uint16(o.i16)) 24 data = append(data, buf[:2]...) 25 binary.LittleEndian.PutUint32(buf[:4], uint32(o.i32)) 26 data = append(data, buf[:4]...) 27 binary.LittleEndian.PutUint64(buf[:8], uint64(o.i64)) 28 data = append(data, buf[:8]...) 29 data = append(data, byte(o.u8)) 30 binary.LittleEndian.PutUint16(buf[:2], uint16(o.u16)) 31 data = append(data, buf[:2]...) 32 binary.LittleEndian.PutUint32(buf[:4], uint32(o.u32)) 33 data = append(data, buf[:4]...) 34 binary.LittleEndian.PutUint64(buf[:8], uint64(o.u64)) 35 data = append(data, buf[:8]...) 36 binary.LittleEndian.PutUint32(buf[:4], math.Float32bits(o.f32)) 37 data = append(data, buf[:4]...) 38 binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.f64)) 39 data = append(data, buf[:8]...) 40 binary.LittleEndian.PutUint64(buf[:4], math.Float32bits(real(o.c64))) 41 data = append(data, buf[:4]...) 42 binary.LittleEndian.PutUint64(buf[:4], math.Float32bits(imag(o.c64))) 43 data = append(data, buf[:4]...) 44 binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(real(o.c128))) 45 data = append(data, buf[:8]...) 46 binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(imag(o.c128))) 47 data = append(data, buf[:8]...) 48 switch o.b { 49 case false: 50 data = append(data, uint8(0)) 51 default: 52 data = append(data, uint8(1)) 53 } 54 for i := range o.arrI8 { 55 o := &o.arrI8[i] 56 data = append(data, byte(o)) 57 } 58 binary.LittleEndian.PutUint64(buf[:8], uint64(len(o.sliF64))) 59 data = append(data, buf[:8]...) 60 for i := range o.sliF64 { 61 o := &o.sliF64[i] 62 binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o)) 63 data = append(data, buf[:8]...) 64 } 65 binary.LittleEndian.PutUint64(buf[:8], uint64(len(o.bins))) 66 data = append(data, buf[:8]...) 67 for i := range o.bins { 68 o := &o.bins[i] 69 { 70 sub, err := o.MarshalBinary() 71 if err != nil { 72 return nil, err 73 } 74 binary.LittleEndian.PutUint64(buf[:8], uint64(len(sub))) 75 data = append(data, buf[:8]...) 76 data = append(data, sub...) 77 } 78 } 79 binary.LittleEndian.PutUint64(buf[:8], uint64(len(o.sliPs))) 80 data = append(data, buf[:8]...) 81 for i := range o.sliPs { 82 o := o.sliPs[i] 83 { 84 v := *o 85 { 86 sub, err := v.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 { 97 v := *o.ptr 98 binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(v)) 99 data = append(data, buf[:8]...) 100 } 101 data = append(data, byte(o.myu8)) 102 binary.LittleEndian.PutUint16(buf[:2], uint16(o.myu16)) 103 data = append(data, buf[:2]...) 104 return data, err 105 } 106 107 // UnmarshalBinary implements encoding.BinaryUnmarshaler 108 func (o *Hist) UnmarshalBinary(data []byte) (err error) { 109 { 110 n := int(binary.LittleEndian.Uint64(data[:8])) 111 data = data[8:] 112 o.Name = string(data[:n]) 113 data = data[n:] 114 } 115 o.Data.X = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8]))) 116 data = data[8:] 117 o.i = int(binary.LittleEndian.Uint64(data[:8])) 118 data = data[8:] 119 o.u = uint(binary.LittleEndian.Uint64(data[:8])) 120 data = data[8:] 121 o.i8 = int8(data[0]) 122 data = data[1:] 123 o.i16 = int16(binary.LittleEndian.Uint16(data[:2])) 124 data = data[2:] 125 o.i32 = int32(binary.LittleEndian.Uint32(data[:4])) 126 data = data[4:] 127 o.i64 = int64(binary.LittleEndian.Uint64(data[:8])) 128 data = data[8:] 129 o.u8 = uint8(data[0]) 130 data = data[1:] 131 o.u16 = uint16(binary.LittleEndian.Uint16(data[:2])) 132 data = data[2:] 133 o.u32 = uint32(binary.LittleEndian.Uint32(data[:4])) 134 data = data[4:] 135 o.u64 = uint64(binary.LittleEndian.Uint64(data[:8])) 136 data = data[8:] 137 o.f32 = float32(math.Float32frombits(binary.LittleEndian.Uint32(data[:4]))) 138 data = data[4:] 139 o.f64 = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8]))) 140 data = data[8:] 141 o.c64 = complex64(complex(math.Float32frombits(binary.LittleEndian.Uint32(data[:4])), math.Float32frombits(binary.LittleEndian.Uint32(data[4:8])))) 142 data = data[8:] 143 o.c128 = complex128(complex(math.Float64frombits(binary.LittleEndian.Uint64(data[:8])), math.Float64frombits(binary.LittleEndian.Uint64(data[8:16])))) 144 data = data[16:] 145 switch data[i] { 146 case 0: 147 o.b = false 148 default: 149 o.b = true 150 } 151 data = data[1:] 152 for i := range o.arrI8 { 153 o.arrI8[i] = int8(data[0]) 154 data = data[1:] 155 } 156 { 157 n := int(binary.LittleEndian.Uint64(data[:8])) 158 o.sliF64 = make([]float64, n) 159 data = data[8:] 160 for i := range o.sliF64 { 161 o.sliF64[i] = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8]))) 162 data = data[8:] 163 } 164 } 165 { 166 n := int(binary.LittleEndian.Uint64(data[:8])) 167 o.bins = make([]Bin, n) 168 data = data[8:] 169 for i := range o.bins { 170 oi := &o.bins[i] 171 { 172 n := int(binary.LittleEndian.Uint64(data[:8])) 173 data = data[8:] 174 err = oi.UnmarshalBinary(data[:n]) 175 if err != nil { 176 return err 177 } 178 data = data[n:] 179 } 180 } 181 } 182 { 183 n := int(binary.LittleEndian.Uint64(data[:8])) 184 o.sliPs = make([]*Bin, n) 185 data = data[8:] 186 for i := range o.sliPs { 187 var oi Bin 188 { 189 var v Bin 190 { 191 n := int(binary.LittleEndian.Uint64(data[:8])) 192 data = data[8:] 193 err = v.UnmarshalBinary(data[:n]) 194 if err != nil { 195 return err 196 } 197 data = data[n:] 198 } 199 oi = &v 200 201 } 202 o.sliPs[i] = oi 203 } 204 } 205 { 206 var v float64 207 v = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8]))) 208 data = data[8:] 209 o.ptr = &v 210 211 } 212 o.myu8 = U8(data[0]) 213 data = data[1:] 214 o.myu16 = U16(binary.LittleEndian.Uint16(data[:2])) 215 data = data[2:] 216 _ = data 217 return err 218 } 219 220 // MarshalBinary implements encoding.BinaryMarshaler 221 func (o *Bin) MarshalBinary() (data []byte, err error) { 222 var buf [8]byte 223 binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.x)) 224 data = append(data, buf[:8]...) 225 binary.LittleEndian.PutUint64(buf[:8], math.Float64bits(o.y)) 226 data = append(data, buf[:8]...) 227 return data, err 228 } 229 230 // UnmarshalBinary implements encoding.BinaryUnmarshaler 231 func (o *Bin) UnmarshalBinary(data []byte) (err error) { 232 o.x = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8]))) 233 data = data[8:] 234 o.y = float64(math.Float64frombits(binary.LittleEndian.Uint64(data[:8]))) 235 data = data[8:] 236 _ = data 237 return err 238 }