go-hep.org/x/hep@v0.38.1/groot/rtree/rfunc/rfunc_bool_gen.go (about) 1 // Copyright ©2020 The go-hep Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Automatically generated. DO NOT EDIT. 6 7 package rfunc 8 9 import ( 10 "fmt" 11 ) 12 13 // FuncToBool implements rfunc.Formula 14 type FuncToBool struct { 15 fct func() bool 16 } 17 18 // NewFuncToBool return a new formula, from the provided function. 19 func NewFuncToBool(rvars []string, fct func() bool) *FuncToBool { 20 return &FuncToBool{ 21 fct: fct, 22 } 23 } 24 25 // RVars implements rfunc.Formula 26 func (f *FuncToBool) RVars() []string { return nil } 27 28 // Bind implements rfunc.Formula 29 func (f *FuncToBool) Bind(args []any) error { 30 if got, want := len(args), 0; got != want { 31 return fmt.Errorf( 32 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 33 got, want, 34 ) 35 } 36 return nil 37 } 38 39 // Func implements rfunc.Formula 40 func (f *FuncToBool) Func() any { 41 return func() bool { 42 return f.fct() 43 } 44 } 45 46 var ( 47 _ Formula = (*FuncToBool)(nil) 48 ) 49 50 // FuncF32ToBool implements rfunc.Formula 51 type FuncF32ToBool struct { 52 rvars []string 53 arg0 *float32 54 fct func(arg00 float32) bool 55 } 56 57 // NewFuncF32ToBool return a new formula, from the provided function. 58 func NewFuncF32ToBool(rvars []string, fct func(arg00 float32) bool) *FuncF32ToBool { 59 return &FuncF32ToBool{ 60 rvars: rvars, 61 fct: fct, 62 } 63 } 64 65 // RVars implements rfunc.Formula 66 func (f *FuncF32ToBool) RVars() []string { return f.rvars } 67 68 // Bind implements rfunc.Formula 69 func (f *FuncF32ToBool) Bind(args []any) error { 70 if got, want := len(args), 1; got != want { 71 return fmt.Errorf( 72 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 73 got, want, 74 ) 75 } 76 { 77 ptr, ok := args[0].(*float32) 78 if !ok { 79 return fmt.Errorf( 80 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float32", 81 f.rvars[0], args[0], 82 ) 83 } 84 f.arg0 = ptr 85 } 86 return nil 87 } 88 89 // Func implements rfunc.Formula 90 func (f *FuncF32ToBool) Func() any { 91 return func() bool { 92 return f.fct( 93 *f.arg0, 94 ) 95 } 96 } 97 98 var ( 99 _ Formula = (*FuncF32ToBool)(nil) 100 ) 101 102 // FuncF32F32ToBool implements rfunc.Formula 103 type FuncF32F32ToBool struct { 104 rvars []string 105 arg0 *float32 106 arg1 *float32 107 fct func(arg00 float32, arg01 float32) bool 108 } 109 110 // NewFuncF32F32ToBool return a new formula, from the provided function. 111 func NewFuncF32F32ToBool(rvars []string, fct func(arg00 float32, arg01 float32) bool) *FuncF32F32ToBool { 112 return &FuncF32F32ToBool{ 113 rvars: rvars, 114 fct: fct, 115 } 116 } 117 118 // RVars implements rfunc.Formula 119 func (f *FuncF32F32ToBool) RVars() []string { return f.rvars } 120 121 // Bind implements rfunc.Formula 122 func (f *FuncF32F32ToBool) Bind(args []any) error { 123 if got, want := len(args), 2; got != want { 124 return fmt.Errorf( 125 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 126 got, want, 127 ) 128 } 129 { 130 ptr, ok := args[0].(*float32) 131 if !ok { 132 return fmt.Errorf( 133 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float32", 134 f.rvars[0], args[0], 135 ) 136 } 137 f.arg0 = ptr 138 } 139 { 140 ptr, ok := args[1].(*float32) 141 if !ok { 142 return fmt.Errorf( 143 "rfunc: argument type 1 (name=%s) mismatch: got=%T, want=*float32", 144 f.rvars[1], args[1], 145 ) 146 } 147 f.arg1 = ptr 148 } 149 return nil 150 } 151 152 // Func implements rfunc.Formula 153 func (f *FuncF32F32ToBool) Func() any { 154 return func() bool { 155 return f.fct( 156 *f.arg0, 157 *f.arg1, 158 ) 159 } 160 } 161 162 var ( 163 _ Formula = (*FuncF32F32ToBool)(nil) 164 ) 165 166 // FuncF32F32F32ToBool implements rfunc.Formula 167 type FuncF32F32F32ToBool struct { 168 rvars []string 169 arg0 *float32 170 arg1 *float32 171 arg2 *float32 172 fct func(arg00 float32, arg01 float32, arg02 float32) bool 173 } 174 175 // NewFuncF32F32F32ToBool return a new formula, from the provided function. 176 func NewFuncF32F32F32ToBool(rvars []string, fct func(arg00 float32, arg01 float32, arg02 float32) bool) *FuncF32F32F32ToBool { 177 return &FuncF32F32F32ToBool{ 178 rvars: rvars, 179 fct: fct, 180 } 181 } 182 183 // RVars implements rfunc.Formula 184 func (f *FuncF32F32F32ToBool) RVars() []string { return f.rvars } 185 186 // Bind implements rfunc.Formula 187 func (f *FuncF32F32F32ToBool) Bind(args []any) error { 188 if got, want := len(args), 3; got != want { 189 return fmt.Errorf( 190 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 191 got, want, 192 ) 193 } 194 { 195 ptr, ok := args[0].(*float32) 196 if !ok { 197 return fmt.Errorf( 198 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float32", 199 f.rvars[0], args[0], 200 ) 201 } 202 f.arg0 = ptr 203 } 204 { 205 ptr, ok := args[1].(*float32) 206 if !ok { 207 return fmt.Errorf( 208 "rfunc: argument type 1 (name=%s) mismatch: got=%T, want=*float32", 209 f.rvars[1], args[1], 210 ) 211 } 212 f.arg1 = ptr 213 } 214 { 215 ptr, ok := args[2].(*float32) 216 if !ok { 217 return fmt.Errorf( 218 "rfunc: argument type 2 (name=%s) mismatch: got=%T, want=*float32", 219 f.rvars[2], args[2], 220 ) 221 } 222 f.arg2 = ptr 223 } 224 return nil 225 } 226 227 // Func implements rfunc.Formula 228 func (f *FuncF32F32F32ToBool) Func() any { 229 return func() bool { 230 return f.fct( 231 *f.arg0, 232 *f.arg1, 233 *f.arg2, 234 ) 235 } 236 } 237 238 var ( 239 _ Formula = (*FuncF32F32F32ToBool)(nil) 240 ) 241 242 // FuncF64ToBool implements rfunc.Formula 243 type FuncF64ToBool struct { 244 rvars []string 245 arg0 *float64 246 fct func(arg00 float64) bool 247 } 248 249 // NewFuncF64ToBool return a new formula, from the provided function. 250 func NewFuncF64ToBool(rvars []string, fct func(arg00 float64) bool) *FuncF64ToBool { 251 return &FuncF64ToBool{ 252 rvars: rvars, 253 fct: fct, 254 } 255 } 256 257 // RVars implements rfunc.Formula 258 func (f *FuncF64ToBool) RVars() []string { return f.rvars } 259 260 // Bind implements rfunc.Formula 261 func (f *FuncF64ToBool) Bind(args []any) error { 262 if got, want := len(args), 1; got != want { 263 return fmt.Errorf( 264 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 265 got, want, 266 ) 267 } 268 { 269 ptr, ok := args[0].(*float64) 270 if !ok { 271 return fmt.Errorf( 272 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float64", 273 f.rvars[0], args[0], 274 ) 275 } 276 f.arg0 = ptr 277 } 278 return nil 279 } 280 281 // Func implements rfunc.Formula 282 func (f *FuncF64ToBool) Func() any { 283 return func() bool { 284 return f.fct( 285 *f.arg0, 286 ) 287 } 288 } 289 290 var ( 291 _ Formula = (*FuncF64ToBool)(nil) 292 ) 293 294 // FuncF64F64ToBool implements rfunc.Formula 295 type FuncF64F64ToBool struct { 296 rvars []string 297 arg0 *float64 298 arg1 *float64 299 fct func(arg00 float64, arg01 float64) bool 300 } 301 302 // NewFuncF64F64ToBool return a new formula, from the provided function. 303 func NewFuncF64F64ToBool(rvars []string, fct func(arg00 float64, arg01 float64) bool) *FuncF64F64ToBool { 304 return &FuncF64F64ToBool{ 305 rvars: rvars, 306 fct: fct, 307 } 308 } 309 310 // RVars implements rfunc.Formula 311 func (f *FuncF64F64ToBool) RVars() []string { return f.rvars } 312 313 // Bind implements rfunc.Formula 314 func (f *FuncF64F64ToBool) Bind(args []any) error { 315 if got, want := len(args), 2; got != want { 316 return fmt.Errorf( 317 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 318 got, want, 319 ) 320 } 321 { 322 ptr, ok := args[0].(*float64) 323 if !ok { 324 return fmt.Errorf( 325 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float64", 326 f.rvars[0], args[0], 327 ) 328 } 329 f.arg0 = ptr 330 } 331 { 332 ptr, ok := args[1].(*float64) 333 if !ok { 334 return fmt.Errorf( 335 "rfunc: argument type 1 (name=%s) mismatch: got=%T, want=*float64", 336 f.rvars[1], args[1], 337 ) 338 } 339 f.arg1 = ptr 340 } 341 return nil 342 } 343 344 // Func implements rfunc.Formula 345 func (f *FuncF64F64ToBool) Func() any { 346 return func() bool { 347 return f.fct( 348 *f.arg0, 349 *f.arg1, 350 ) 351 } 352 } 353 354 var ( 355 _ Formula = (*FuncF64F64ToBool)(nil) 356 ) 357 358 // FuncF64F64F64ToBool implements rfunc.Formula 359 type FuncF64F64F64ToBool struct { 360 rvars []string 361 arg0 *float64 362 arg1 *float64 363 arg2 *float64 364 fct func(arg00 float64, arg01 float64, arg02 float64) bool 365 } 366 367 // NewFuncF64F64F64ToBool return a new formula, from the provided function. 368 func NewFuncF64F64F64ToBool(rvars []string, fct func(arg00 float64, arg01 float64, arg02 float64) bool) *FuncF64F64F64ToBool { 369 return &FuncF64F64F64ToBool{ 370 rvars: rvars, 371 fct: fct, 372 } 373 } 374 375 // RVars implements rfunc.Formula 376 func (f *FuncF64F64F64ToBool) RVars() []string { return f.rvars } 377 378 // Bind implements rfunc.Formula 379 func (f *FuncF64F64F64ToBool) Bind(args []any) error { 380 if got, want := len(args), 3; got != want { 381 return fmt.Errorf( 382 "rfunc: invalid number of bind arguments (got=%d, want=%d)", 383 got, want, 384 ) 385 } 386 { 387 ptr, ok := args[0].(*float64) 388 if !ok { 389 return fmt.Errorf( 390 "rfunc: argument type 0 (name=%s) mismatch: got=%T, want=*float64", 391 f.rvars[0], args[0], 392 ) 393 } 394 f.arg0 = ptr 395 } 396 { 397 ptr, ok := args[1].(*float64) 398 if !ok { 399 return fmt.Errorf( 400 "rfunc: argument type 1 (name=%s) mismatch: got=%T, want=*float64", 401 f.rvars[1], args[1], 402 ) 403 } 404 f.arg1 = ptr 405 } 406 { 407 ptr, ok := args[2].(*float64) 408 if !ok { 409 return fmt.Errorf( 410 "rfunc: argument type 2 (name=%s) mismatch: got=%T, want=*float64", 411 f.rvars[2], args[2], 412 ) 413 } 414 f.arg2 = ptr 415 } 416 return nil 417 } 418 419 // Func implements rfunc.Formula 420 func (f *FuncF64F64F64ToBool) Func() any { 421 return func() bool { 422 return f.fct( 423 *f.arg0, 424 *f.arg1, 425 *f.arg2, 426 ) 427 } 428 } 429 430 var ( 431 _ Formula = (*FuncF64F64F64ToBool)(nil) 432 )