2023-05-29 21:03:29 +00:00
|
|
|
// Copyright 2018 Google LLC
|
|
|
|
//
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
// you may not use this file except in compliance with the License.
|
|
|
|
// You may obtain a copy of the License at
|
|
|
|
//
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
//
|
|
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
// See the License for the specific language governing permissions and
|
|
|
|
// limitations under the License.
|
|
|
|
|
|
|
|
// Package functions defines the standard builtin functions supported by the
|
|
|
|
// interpreter and as declared within the checker#StandardDeclarations.
|
|
|
|
package functions
|
|
|
|
|
2023-12-18 20:31:00 +00:00
|
|
|
import fn "github.com/google/cel-go/common/functions"
|
2023-05-29 21:03:29 +00:00
|
|
|
|
|
|
|
// Overload defines a named overload of a function, indicating an operand trait
|
|
|
|
// which must be present on the first argument to the overload as well as one
|
|
|
|
// of either a unary, binary, or function implementation.
|
|
|
|
//
|
|
|
|
// The majority of operators within the expression language are unary or binary
|
|
|
|
// and the specializations simplify the call contract for implementers of
|
|
|
|
// types with operator overloads. Any added complexity is assumed to be handled
|
|
|
|
// by the generic FunctionOp.
|
2023-12-18 20:31:00 +00:00
|
|
|
type Overload = fn.Overload
|
2023-05-29 21:03:29 +00:00
|
|
|
|
|
|
|
// UnaryOp is a function that takes a single value and produces an output.
|
2023-12-18 20:31:00 +00:00
|
|
|
type UnaryOp = fn.UnaryOp
|
2023-05-29 21:03:29 +00:00
|
|
|
|
|
|
|
// BinaryOp is a function that takes two values and produces an output.
|
2023-12-18 20:31:00 +00:00
|
|
|
type BinaryOp = fn.BinaryOp
|
2023-05-29 21:03:29 +00:00
|
|
|
|
|
|
|
// FunctionOp is a function with accepts zero or more arguments and produces
|
2023-08-17 05:15:28 +00:00
|
|
|
// a value or error as a result.
|
2023-12-18 20:31:00 +00:00
|
|
|
type FunctionOp = fn.FunctionOp
|