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  }