in transforms.go [884:915]
func transformLiteral[T LiteralType](fn func(any) Optional[T], lit Literal) Literal {
switch l := lit.(type) {
case BoolLiteral:
return NewLiteral(fn(bool(l)).Val)
case Int32Literal:
return NewLiteral(fn(int32(l)).Val)
case Int64Literal:
return NewLiteral(fn(int64(l)).Val)
case Float32Literal:
return NewLiteral(fn(float32(l)).Val)
case Float64Literal:
return NewLiteral(fn(float64(l)).Val)
case DateLiteral:
return NewLiteral(fn(Date(l)).Val)
case TimeLiteral:
return NewLiteral(fn(Time(l)).Val)
case TimestampLiteral:
return NewLiteral(fn(Timestamp(l)).Val)
case StringLiteral:
return NewLiteral(fn(string(l)).Val)
case FixedLiteral:
return NewLiteral(fn([]byte(l)).Val)
case BinaryLiteral:
return NewLiteral(fn([]byte(l)).Val)
case UUIDLiteral:
return NewLiteral(fn(uuid.UUID(l)).Val)
case DecimalLiteral:
return NewLiteral(fn(Decimal(l)).Val)
}
panic("invalid literal type")
}