go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/projects/nodes/pkg/model/gen/cast.go (about) 1 // File generated by nodegen. DO NOT EDIT. 2 package gen 3 4 import ( 5 "fmt" 6 "time" 7 8 "github.com/wcharczuk/go-incr" 9 "go.charczuk.com/projects/nodes/pkg/funcs" 10 "go.charczuk.com/projects/nodes/pkg/incrutil" 11 "go.charczuk.com/projects/nodes/pkg/types" 12 ) 13 14 func CastForNode(graph *incr.Graph, n *types.Node) (output incr.INode, err error) { 15 switch n.Metadata.InputType { 16 case "[]bool": 17 switch n.Metadata.OutputType { 18 case "[]any": 19 output = incrutil.Map(graph, funcs.Cast[[]bool, []any]) 20 return 21 case "[]bool": 22 output = incrutil.Map(graph, funcs.Cast[[]bool, []bool]) 23 return 24 case "[]float64": 25 output = incrutil.Map(graph, funcs.Cast[[]bool, []float64]) 26 return 27 case "[]int64": 28 output = incrutil.Map(graph, funcs.Cast[[]bool, []int64]) 29 return 30 case "[]string": 31 output = incrutil.Map(graph, funcs.Cast[[]bool, []string]) 32 return 33 case "[]duration": 34 output = incrutil.Map(graph, funcs.Cast[[]bool, []time.Duration]) 35 return 36 case "[]timestamp": 37 output = incrutil.Map(graph, funcs.Cast[[]bool, []time.Time]) 38 return 39 case "any": 40 output = incrutil.Map(graph, funcs.Cast[[]bool, any]) 41 return 42 case "bool": 43 output = incrutil.Map(graph, funcs.Cast[[]bool, bool]) 44 return 45 case "float64": 46 output = incrutil.Map(graph, funcs.Cast[[]bool, float64]) 47 return 48 case "int64": 49 output = incrutil.Map(graph, funcs.Cast[[]bool, int64]) 50 return 51 case "string": 52 output = incrutil.Map(graph, funcs.Cast[[]bool, string]) 53 return 54 case "duration": 55 output = incrutil.Map(graph, funcs.Cast[[]bool, time.Duration]) 56 return 57 case "timestamp": 58 output = incrutil.Map(graph, funcs.Cast[[]bool, time.Time]) 59 return 60 default: 61 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 62 return 63 } 64 65 case "[]float64": 66 switch n.Metadata.OutputType { 67 case "[]any": 68 output = incrutil.Map(graph, funcs.Cast[[]float64, []any]) 69 return 70 case "[]bool": 71 output = incrutil.Map(graph, funcs.Cast[[]float64, []bool]) 72 return 73 case "[]float64": 74 output = incrutil.Map(graph, funcs.Cast[[]float64, []float64]) 75 return 76 case "[]int64": 77 output = incrutil.Map(graph, funcs.Cast[[]float64, []int64]) 78 return 79 case "[]string": 80 output = incrutil.Map(graph, funcs.Cast[[]float64, []string]) 81 return 82 case "[]duration": 83 output = incrutil.Map(graph, funcs.Cast[[]float64, []time.Duration]) 84 return 85 case "[]timestamp": 86 output = incrutil.Map(graph, funcs.Cast[[]float64, []time.Time]) 87 return 88 case "any": 89 output = incrutil.Map(graph, funcs.Cast[[]float64, any]) 90 return 91 case "bool": 92 output = incrutil.Map(graph, funcs.Cast[[]float64, bool]) 93 return 94 case "float64": 95 output = incrutil.Map(graph, funcs.Cast[[]float64, float64]) 96 return 97 case "int64": 98 output = incrutil.Map(graph, funcs.Cast[[]float64, int64]) 99 return 100 case "string": 101 output = incrutil.Map(graph, funcs.Cast[[]float64, string]) 102 return 103 case "duration": 104 output = incrutil.Map(graph, funcs.Cast[[]float64, time.Duration]) 105 return 106 case "timestamp": 107 output = incrutil.Map(graph, funcs.Cast[[]float64, time.Time]) 108 return 109 default: 110 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 111 return 112 } 113 114 case "[]int64": 115 switch n.Metadata.OutputType { 116 case "[]any": 117 output = incrutil.Map(graph, funcs.Cast[[]int64, []any]) 118 return 119 case "[]bool": 120 output = incrutil.Map(graph, funcs.Cast[[]int64, []bool]) 121 return 122 case "[]float64": 123 output = incrutil.Map(graph, funcs.Cast[[]int64, []float64]) 124 return 125 case "[]int64": 126 output = incrutil.Map(graph, funcs.Cast[[]int64, []int64]) 127 return 128 case "[]string": 129 output = incrutil.Map(graph, funcs.Cast[[]int64, []string]) 130 return 131 case "[]duration": 132 output = incrutil.Map(graph, funcs.Cast[[]int64, []time.Duration]) 133 return 134 case "[]timestamp": 135 output = incrutil.Map(graph, funcs.Cast[[]int64, []time.Time]) 136 return 137 case "any": 138 output = incrutil.Map(graph, funcs.Cast[[]int64, any]) 139 return 140 case "bool": 141 output = incrutil.Map(graph, funcs.Cast[[]int64, bool]) 142 return 143 case "float64": 144 output = incrutil.Map(graph, funcs.Cast[[]int64, float64]) 145 return 146 case "int64": 147 output = incrutil.Map(graph, funcs.Cast[[]int64, int64]) 148 return 149 case "string": 150 output = incrutil.Map(graph, funcs.Cast[[]int64, string]) 151 return 152 case "duration": 153 output = incrutil.Map(graph, funcs.Cast[[]int64, time.Duration]) 154 return 155 case "timestamp": 156 output = incrutil.Map(graph, funcs.Cast[[]int64, time.Time]) 157 return 158 default: 159 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 160 return 161 } 162 163 case "[]string": 164 switch n.Metadata.OutputType { 165 case "[]any": 166 output = incrutil.Map(graph, funcs.Cast[[]string, []any]) 167 return 168 case "[]bool": 169 output = incrutil.Map(graph, funcs.Cast[[]string, []bool]) 170 return 171 case "[]float64": 172 output = incrutil.Map(graph, funcs.Cast[[]string, []float64]) 173 return 174 case "[]int64": 175 output = incrutil.Map(graph, funcs.Cast[[]string, []int64]) 176 return 177 case "[]string": 178 output = incrutil.Map(graph, funcs.Cast[[]string, []string]) 179 return 180 case "[]duration": 181 output = incrutil.Map(graph, funcs.Cast[[]string, []time.Duration]) 182 return 183 case "[]timestamp": 184 output = incrutil.Map(graph, funcs.Cast[[]string, []time.Time]) 185 return 186 case "any": 187 output = incrutil.Map(graph, funcs.Cast[[]string, any]) 188 return 189 case "bool": 190 output = incrutil.Map(graph, funcs.Cast[[]string, bool]) 191 return 192 case "float64": 193 output = incrutil.Map(graph, funcs.Cast[[]string, float64]) 194 return 195 case "int64": 196 output = incrutil.Map(graph, funcs.Cast[[]string, int64]) 197 return 198 case "string": 199 output = incrutil.Map(graph, funcs.Cast[[]string, string]) 200 return 201 case "duration": 202 output = incrutil.Map(graph, funcs.Cast[[]string, time.Duration]) 203 return 204 case "timestamp": 205 output = incrutil.Map(graph, funcs.Cast[[]string, time.Time]) 206 return 207 default: 208 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 209 return 210 } 211 212 case "[]duration": 213 switch n.Metadata.OutputType { 214 case "[]any": 215 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, []any]) 216 return 217 case "[]bool": 218 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, []bool]) 219 return 220 case "[]float64": 221 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, []float64]) 222 return 223 case "[]int64": 224 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, []int64]) 225 return 226 case "[]string": 227 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, []string]) 228 return 229 case "[]duration": 230 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, []time.Duration]) 231 return 232 case "[]timestamp": 233 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, []time.Time]) 234 return 235 case "any": 236 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, any]) 237 return 238 case "bool": 239 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, bool]) 240 return 241 case "float64": 242 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, float64]) 243 return 244 case "int64": 245 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, int64]) 246 return 247 case "string": 248 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, string]) 249 return 250 case "duration": 251 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, time.Duration]) 252 return 253 case "timestamp": 254 output = incrutil.Map(graph, funcs.Cast[[]time.Duration, time.Time]) 255 return 256 default: 257 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 258 return 259 } 260 261 case "[]timestamp": 262 switch n.Metadata.OutputType { 263 case "[]any": 264 output = incrutil.Map(graph, funcs.Cast[[]time.Time, []any]) 265 return 266 case "[]bool": 267 output = incrutil.Map(graph, funcs.Cast[[]time.Time, []bool]) 268 return 269 case "[]float64": 270 output = incrutil.Map(graph, funcs.Cast[[]time.Time, []float64]) 271 return 272 case "[]int64": 273 output = incrutil.Map(graph, funcs.Cast[[]time.Time, []int64]) 274 return 275 case "[]string": 276 output = incrutil.Map(graph, funcs.Cast[[]time.Time, []string]) 277 return 278 case "[]duration": 279 output = incrutil.Map(graph, funcs.Cast[[]time.Time, []time.Duration]) 280 return 281 case "[]timestamp": 282 output = incrutil.Map(graph, funcs.Cast[[]time.Time, []time.Time]) 283 return 284 case "any": 285 output = incrutil.Map(graph, funcs.Cast[[]time.Time, any]) 286 return 287 case "bool": 288 output = incrutil.Map(graph, funcs.Cast[[]time.Time, bool]) 289 return 290 case "float64": 291 output = incrutil.Map(graph, funcs.Cast[[]time.Time, float64]) 292 return 293 case "int64": 294 output = incrutil.Map(graph, funcs.Cast[[]time.Time, int64]) 295 return 296 case "string": 297 output = incrutil.Map(graph, funcs.Cast[[]time.Time, string]) 298 return 299 case "duration": 300 output = incrutil.Map(graph, funcs.Cast[[]time.Time, time.Duration]) 301 return 302 case "timestamp": 303 output = incrutil.Map(graph, funcs.Cast[[]time.Time, time.Time]) 304 return 305 default: 306 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 307 return 308 } 309 310 case "any": 311 switch n.Metadata.OutputType { 312 case "[]any": 313 output = incrutil.Map(graph, funcs.Cast[any, []any]) 314 return 315 case "[]bool": 316 output = incrutil.Map(graph, funcs.Cast[any, []bool]) 317 return 318 case "[]float64": 319 output = incrutil.Map(graph, funcs.Cast[any, []float64]) 320 return 321 case "[]int64": 322 output = incrutil.Map(graph, funcs.Cast[any, []int64]) 323 return 324 case "[]string": 325 output = incrutil.Map(graph, funcs.Cast[any, []string]) 326 return 327 case "[]duration": 328 output = incrutil.Map(graph, funcs.Cast[any, []time.Duration]) 329 return 330 case "[]timestamp": 331 output = incrutil.Map(graph, funcs.Cast[any, []time.Time]) 332 return 333 case "any": 334 output = incrutil.Map(graph, funcs.Cast[any, any]) 335 return 336 case "bool": 337 output = incrutil.Map(graph, funcs.Cast[any, bool]) 338 return 339 case "float64": 340 output = incrutil.Map(graph, funcs.Cast[any, float64]) 341 return 342 case "int64": 343 output = incrutil.Map(graph, funcs.Cast[any, int64]) 344 return 345 case "string": 346 output = incrutil.Map(graph, funcs.Cast[any, string]) 347 return 348 case "duration": 349 output = incrutil.Map(graph, funcs.Cast[any, time.Duration]) 350 return 351 case "timestamp": 352 output = incrutil.Map(graph, funcs.Cast[any, time.Time]) 353 return 354 default: 355 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 356 return 357 } 358 359 case "bool": 360 switch n.Metadata.OutputType { 361 case "[]any": 362 output = incrutil.Map(graph, funcs.Cast[bool, []any]) 363 return 364 case "[]bool": 365 output = incrutil.Map(graph, funcs.Cast[bool, []bool]) 366 return 367 case "[]float64": 368 output = incrutil.Map(graph, funcs.Cast[bool, []float64]) 369 return 370 case "[]int64": 371 output = incrutil.Map(graph, funcs.Cast[bool, []int64]) 372 return 373 case "[]string": 374 output = incrutil.Map(graph, funcs.Cast[bool, []string]) 375 return 376 case "[]duration": 377 output = incrutil.Map(graph, funcs.Cast[bool, []time.Duration]) 378 return 379 case "[]timestamp": 380 output = incrutil.Map(graph, funcs.Cast[bool, []time.Time]) 381 return 382 case "any": 383 output = incrutil.Map(graph, funcs.Cast[bool, any]) 384 return 385 case "bool": 386 output = incrutil.Map(graph, funcs.Cast[bool, bool]) 387 return 388 case "float64": 389 output = incrutil.Map(graph, funcs.Cast[bool, float64]) 390 return 391 case "int64": 392 output = incrutil.Map(graph, funcs.Cast[bool, int64]) 393 return 394 case "string": 395 output = incrutil.Map(graph, funcs.Cast[bool, string]) 396 return 397 case "duration": 398 output = incrutil.Map(graph, funcs.Cast[bool, time.Duration]) 399 return 400 case "timestamp": 401 output = incrutil.Map(graph, funcs.Cast[bool, time.Time]) 402 return 403 default: 404 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 405 return 406 } 407 408 case "float64": 409 switch n.Metadata.OutputType { 410 case "[]any": 411 output = incrutil.Map(graph, funcs.Cast[float64, []any]) 412 return 413 case "[]bool": 414 output = incrutil.Map(graph, funcs.Cast[float64, []bool]) 415 return 416 case "[]float64": 417 output = incrutil.Map(graph, funcs.Cast[float64, []float64]) 418 return 419 case "[]int64": 420 output = incrutil.Map(graph, funcs.Cast[float64, []int64]) 421 return 422 case "[]string": 423 output = incrutil.Map(graph, funcs.Cast[float64, []string]) 424 return 425 case "[]duration": 426 output = incrutil.Map(graph, funcs.Cast[float64, []time.Duration]) 427 return 428 case "[]timestamp": 429 output = incrutil.Map(graph, funcs.Cast[float64, []time.Time]) 430 return 431 case "any": 432 output = incrutil.Map(graph, funcs.Cast[float64, any]) 433 return 434 case "bool": 435 output = incrutil.Map(graph, funcs.Cast[float64, bool]) 436 return 437 case "float64": 438 output = incrutil.Map(graph, funcs.Cast[float64, float64]) 439 return 440 case "int64": 441 output = incrutil.Map(graph, funcs.Cast[float64, int64]) 442 return 443 case "string": 444 output = incrutil.Map(graph, funcs.Cast[float64, string]) 445 return 446 case "duration": 447 output = incrutil.Map(graph, funcs.Cast[float64, time.Duration]) 448 return 449 case "timestamp": 450 output = incrutil.Map(graph, funcs.Cast[float64, time.Time]) 451 return 452 default: 453 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 454 return 455 } 456 457 case "int64": 458 switch n.Metadata.OutputType { 459 case "[]any": 460 output = incrutil.Map(graph, funcs.Cast[int64, []any]) 461 return 462 case "[]bool": 463 output = incrutil.Map(graph, funcs.Cast[int64, []bool]) 464 return 465 case "[]float64": 466 output = incrutil.Map(graph, funcs.Cast[int64, []float64]) 467 return 468 case "[]int64": 469 output = incrutil.Map(graph, funcs.Cast[int64, []int64]) 470 return 471 case "[]string": 472 output = incrutil.Map(graph, funcs.Cast[int64, []string]) 473 return 474 case "[]duration": 475 output = incrutil.Map(graph, funcs.Cast[int64, []time.Duration]) 476 return 477 case "[]timestamp": 478 output = incrutil.Map(graph, funcs.Cast[int64, []time.Time]) 479 return 480 case "any": 481 output = incrutil.Map(graph, funcs.Cast[int64, any]) 482 return 483 case "bool": 484 output = incrutil.Map(graph, funcs.Cast[int64, bool]) 485 return 486 case "float64": 487 output = incrutil.Map(graph, funcs.Cast[int64, float64]) 488 return 489 case "int64": 490 output = incrutil.Map(graph, funcs.Cast[int64, int64]) 491 return 492 case "string": 493 output = incrutil.Map(graph, funcs.Cast[int64, string]) 494 return 495 case "duration": 496 output = incrutil.Map(graph, funcs.Cast[int64, time.Duration]) 497 return 498 case "timestamp": 499 output = incrutil.Map(graph, funcs.Cast[int64, time.Time]) 500 return 501 default: 502 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 503 return 504 } 505 506 case "string": 507 switch n.Metadata.OutputType { 508 case "[]any": 509 output = incrutil.Map(graph, funcs.Cast[string, []any]) 510 return 511 case "[]bool": 512 output = incrutil.Map(graph, funcs.Cast[string, []bool]) 513 return 514 case "[]float64": 515 output = incrutil.Map(graph, funcs.Cast[string, []float64]) 516 return 517 case "[]int64": 518 output = incrutil.Map(graph, funcs.Cast[string, []int64]) 519 return 520 case "[]string": 521 output = incrutil.Map(graph, funcs.Cast[string, []string]) 522 return 523 case "[]duration": 524 output = incrutil.Map(graph, funcs.Cast[string, []time.Duration]) 525 return 526 case "[]timestamp": 527 output = incrutil.Map(graph, funcs.Cast[string, []time.Time]) 528 return 529 case "any": 530 output = incrutil.Map(graph, funcs.Cast[string, any]) 531 return 532 case "bool": 533 output = incrutil.Map(graph, funcs.Cast[string, bool]) 534 return 535 case "float64": 536 output = incrutil.Map(graph, funcs.Cast[string, float64]) 537 return 538 case "int64": 539 output = incrutil.Map(graph, funcs.Cast[string, int64]) 540 return 541 case "string": 542 output = incrutil.Map(graph, funcs.Cast[string, string]) 543 return 544 case "duration": 545 output = incrutil.Map(graph, funcs.Cast[string, time.Duration]) 546 return 547 case "timestamp": 548 output = incrutil.Map(graph, funcs.Cast[string, time.Time]) 549 return 550 default: 551 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 552 return 553 } 554 555 case "duration": 556 switch n.Metadata.OutputType { 557 case "[]any": 558 output = incrutil.Map(graph, funcs.Cast[time.Duration, []any]) 559 return 560 case "[]bool": 561 output = incrutil.Map(graph, funcs.Cast[time.Duration, []bool]) 562 return 563 case "[]float64": 564 output = incrutil.Map(graph, funcs.Cast[time.Duration, []float64]) 565 return 566 case "[]int64": 567 output = incrutil.Map(graph, funcs.Cast[time.Duration, []int64]) 568 return 569 case "[]string": 570 output = incrutil.Map(graph, funcs.Cast[time.Duration, []string]) 571 return 572 case "[]duration": 573 output = incrutil.Map(graph, funcs.Cast[time.Duration, []time.Duration]) 574 return 575 case "[]timestamp": 576 output = incrutil.Map(graph, funcs.Cast[time.Duration, []time.Time]) 577 return 578 case "any": 579 output = incrutil.Map(graph, funcs.Cast[time.Duration, any]) 580 return 581 case "bool": 582 output = incrutil.Map(graph, funcs.Cast[time.Duration, bool]) 583 return 584 case "float64": 585 output = incrutil.Map(graph, funcs.Cast[time.Duration, float64]) 586 return 587 case "int64": 588 output = incrutil.Map(graph, funcs.Cast[time.Duration, int64]) 589 return 590 case "string": 591 output = incrutil.Map(graph, funcs.Cast[time.Duration, string]) 592 return 593 case "duration": 594 output = incrutil.Map(graph, funcs.Cast[time.Duration, time.Duration]) 595 return 596 case "timestamp": 597 output = incrutil.Map(graph, funcs.Cast[time.Duration, time.Time]) 598 return 599 default: 600 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 601 return 602 } 603 604 case "timestamp": 605 switch n.Metadata.OutputType { 606 case "[]any": 607 output = incrutil.Map(graph, funcs.Cast[time.Time, []any]) 608 return 609 case "[]bool": 610 output = incrutil.Map(graph, funcs.Cast[time.Time, []bool]) 611 return 612 case "[]float64": 613 output = incrutil.Map(graph, funcs.Cast[time.Time, []float64]) 614 return 615 case "[]int64": 616 output = incrutil.Map(graph, funcs.Cast[time.Time, []int64]) 617 return 618 case "[]string": 619 output = incrutil.Map(graph, funcs.Cast[time.Time, []string]) 620 return 621 case "[]duration": 622 output = incrutil.Map(graph, funcs.Cast[time.Time, []time.Duration]) 623 return 624 case "[]timestamp": 625 output = incrutil.Map(graph, funcs.Cast[time.Time, []time.Time]) 626 return 627 case "any": 628 output = incrutil.Map(graph, funcs.Cast[time.Time, any]) 629 return 630 case "bool": 631 output = incrutil.Map(graph, funcs.Cast[time.Time, bool]) 632 return 633 case "float64": 634 output = incrutil.Map(graph, funcs.Cast[time.Time, float64]) 635 return 636 case "int64": 637 output = incrutil.Map(graph, funcs.Cast[time.Time, int64]) 638 return 639 case "string": 640 output = incrutil.Map(graph, funcs.Cast[time.Time, string]) 641 return 642 case "duration": 643 output = incrutil.Map(graph, funcs.Cast[time.Time, time.Duration]) 644 return 645 case "timestamp": 646 output = incrutil.Map(graph, funcs.Cast[time.Time, time.Time]) 647 return 648 default: 649 err = fmt.Errorf("invalid cast output type %v for input type %v", n.Metadata.OutputType, n.Metadata.InputType) 650 return 651 } 652 653 default: 654 err = fmt.Errorf("invalid cast input type %v", n.Metadata.InputType) 655 return 656 } 657 }