in lib/collections.go [325:560]
func (collectionsLib) CompileOptions() []cel.EnvOption {
return []cel.EnvOption{
cel.Macros(parser.NewReceiverMacro("as", 2, makeAs)),
cel.Function("collate",
cel.MemberOverload(
"list_collate_string",
[]*cel.Type{listDyn, cel.StringType},
listDyn,
cel.BinaryBinding(catch(collateFields)),
),
cel.MemberOverload(
"list_collate_list_string",
[]*cel.Type{listDyn, listString},
listDyn,
cel.BinaryBinding(catch(collateFields)),
),
cel.MemberOverload(
"map_collate_string",
[]*cel.Type{mapStringDyn, cel.StringType},
listDyn,
cel.BinaryBinding(catch(collateFields)),
),
cel.MemberOverload(
"map_collate_list_string",
[]*cel.Type{mapStringDyn, listString},
listDyn,
cel.BinaryBinding(catch(collateFields)),
),
),
cel.Function("drop",
cel.MemberOverload(
"list_drop_string",
[]*cel.Type{listV, cel.StringType},
listV,
cel.BinaryBinding(catch(dropFields)),
),
cel.MemberOverload(
"list_drop_list_string",
[]*cel.Type{listV, listString},
listV,
cel.BinaryBinding(catch(dropFields)),
),
cel.MemberOverload(
"map_drop_string",
[]*cel.Type{mapKV, cel.StringType},
mapKV,
cel.BinaryBinding(catch(dropFields)),
),
cel.MemberOverload(
"map_drop_list_string",
[]*cel.Type{mapKV, listString},
mapKV,
cel.BinaryBinding(catch(dropFields)),
),
),
cel.Function("drop_empty",
cel.MemberOverload(
"list_drop_empty",
[]*cel.Type{listV},
listV,
cel.UnaryBinding(catch(dropEmpty)),
),
cel.MemberOverload(
"map_drop_empty",
[]*cel.Type{mapKV},
mapKV,
cel.UnaryBinding(catch(dropEmpty)),
),
),
cel.Function("flatten",
cel.MemberOverload(
"list_flatten",
[]*cel.Type{listDyn},
listDyn,
cel.UnaryBinding(catch(flatten)),
),
),
cel.Function("front",
cel.Overload(
"front_list_int",
[]*cel.Type{listV, cel.IntType},
listV,
cel.BinaryBinding(catch(frontN)),
),
),
cel.Function("keys",
cel.MemberOverload(
"map_keys",
[]*cel.Type{mapKV},
listK,
cel.UnaryBinding(catch(mapKeys)),
),
cel.Overload(
"keys_map",
[]*cel.Type{mapKV},
listK,
cel.UnaryBinding(catch(mapKeys)),
),
),
cel.Function("max",
cel.MemberOverload(
"list_max",
[]*cel.Type{listV},
typeV,
cel.UnaryBinding(catch(maxList)),
),
cel.Overload(
"max_list",
[]*cel.Type{listV},
typeV,
cel.UnaryBinding(catch(maxList)),
),
cel.Overload(
"max_pair",
[]*cel.Type{typeV, typeV},
typeV,
cel.BinaryBinding(maxDiadic),
),
),
cel.Function("min",
cel.MemberOverload(
"list_min",
[]*cel.Type{listV},
typeV,
cel.UnaryBinding(catch(minList)),
),
cel.Overload(
"min_list",
[]*cel.Type{listV},
typeV,
cel.UnaryBinding(catch(minList)),
),
cel.Overload(
"min_pair",
[]*cel.Type{typeV, typeV},
typeV,
cel.BinaryBinding(minDiadic),
),
),
cel.Function("sum",
cel.MemberOverload(
"list_sum",
[]*cel.Type{listV},
typeV,
cel.UnaryBinding(catch(sumList)),
),
cel.Overload(
"sum_list",
[]*cel.Type{listV},
typeV,
cel.UnaryBinding(catch(sumList)),
),
),
cel.Function("tail",
cel.Overload(
"tail_list",
[]*cel.Type{listV},
listV,
cel.UnaryBinding(catch(tail)),
),
cel.Overload(
"tail_list_int",
[]*cel.Type{listV, cel.IntType},
listV,
cel.BinaryBinding(catch(tailN)),
),
),
cel.Function("values",
cel.MemberOverload(
"map_values",
[]*cel.Type{mapKV},
listK,
cel.UnaryBinding(catch(mapValues)),
),
cel.Overload(
"values_map",
[]*cel.Type{mapKV},
listK,
cel.UnaryBinding(catch(mapValues)),
),
),
cel.Function("with",
cel.MemberOverload(
"map_with_map",
[]*cel.Type{mapKV, mapKV},
mapKV,
cel.BinaryBinding(catch(withAll)),
),
),
cel.Function("with_update",
cel.MemberOverload(
"map_with_update_map",
[]*cel.Type{mapKV, mapKV},
mapKV,
cel.BinaryBinding(catch(withUpdate)),
),
),
cel.Function("with_replace",
cel.MemberOverload(
"map_with_replace_map",
[]*cel.Type{mapKV, mapKV},
mapKV,
cel.BinaryBinding(catch(withReplace)),
),
),
cel.Function("zip",
cel.MemberOverload(
"list_zip",
[]*cel.Type{listK, listV},
mapKV,
cel.BinaryBinding(catch(zipLists)),
),
cel.Overload(
"zip_list",
[]*cel.Type{listK, listV},
mapKV,
cel.BinaryBinding(catch(zipLists)),
),
),
}
}