Documentation ¶
Overview ¶
Package decls provides helpers for creating variable and function declarations.
Index ¶
- Variables
- func NewAbstractType(name string, paramTypes ...*exprpb.Type) *exprpb.Type
- func NewConst(name string, t *exprpb.Type, v *exprpb.Constant) *exprpb.Decl
- func NewFunction(name string, overloads ...*exprpb.Decl_FunctionDecl_Overload) *exprpb.Decl
- func NewFunctionType(resultType *exprpb.Type, argTypes ...*exprpb.Type) *exprpb.Type
- func NewIdent(name string, t *exprpb.Type, v *exprpb.Constant) *exprpb.Decldeprecated
- func NewInstanceOverload(id string, argTypes []*exprpb.Type, resultType *exprpb.Type) *exprpb.Decl_FunctionDecl_Overload
- func NewListType(elem *exprpb.Type) *exprpb.Type
- func NewMapType(key *exprpb.Type, value *exprpb.Type) *exprpb.Type
- func NewObjectType(typeName string) *exprpb.Type
- func NewOptionalType(paramType *exprpb.Type) *exprpb.Type
- func NewOverload(id string, argTypes []*exprpb.Type, resultType *exprpb.Type) *exprpb.Decl_FunctionDecl_Overload
- func NewParameterizedInstanceOverload(id string, argTypes []*exprpb.Type, resultType *exprpb.Type, ...) *exprpb.Decl_FunctionDecl_Overload
- func NewParameterizedOverload(id string, argTypes []*exprpb.Type, resultType *exprpb.Type, ...) *exprpb.Decl_FunctionDecl_Overload
- func NewPrimitiveType(primitive exprpb.Type_PrimitiveType) *exprpb.Type
- func NewTypeParamType(name string) *exprpb.Type
- func NewTypeType(nested *exprpb.Type) *exprpb.Type
- func NewVar(name string, t *exprpb.Type) *exprpb.Decl
- func NewWellKnownType(wellKnown exprpb.Type_WellKnownType) *exprpb.Type
- func NewWrapperType(wrapped *exprpb.Type) *exprpb.Type
Constants ¶
This section is empty.
Variables ¶
var ( // Error type used to communicate issues during type-checking. Error = &exprpb.Type{ TypeKind: &exprpb.Type_Error{ Error: &emptypb.Empty{}}} // Dyn is a top-type used to represent any value. Dyn = &exprpb.Type{ TypeKind: &exprpb.Type_Dyn{ Dyn: &emptypb.Empty{}}} )
var ( Bool = NewPrimitiveType(exprpb.Type_BOOL) Bytes = NewPrimitiveType(exprpb.Type_BYTES) Double = NewPrimitiveType(exprpb.Type_DOUBLE) Int = NewPrimitiveType(exprpb.Type_INT64) Null = &exprpb.Type{ TypeKind: &exprpb.Type_Null{ Null: structpb.NullValue_NULL_VALUE}} String = NewPrimitiveType(exprpb.Type_STRING) Uint = NewPrimitiveType(exprpb.Type_UINT64) )
Commonly used types.
var ( Any = NewWellKnownType(exprpb.Type_ANY) Duration = NewWellKnownType(exprpb.Type_DURATION) Timestamp = NewWellKnownType(exprpb.Type_TIMESTAMP) )
Well-known types. TODO: Replace with an abstract type registry.
Functions ¶
func NewAbstractType ¶
NewAbstractType creates an abstract type declaration which references a proto message name and may also include type parameters.
func NewConst ¶ added in v0.17.3
NewConst creates a constant identifier with a CEL constant literal value.
func NewFunction ¶
func NewFunction(name string, overloads ...*exprpb.Decl_FunctionDecl_Overload) *exprpb.Decl
NewFunction creates a named function declaration with one or more overloads.
func NewFunctionType ¶
NewFunctionType creates a function invocation contract, typically only used by type-checking steps after overload resolution.
func NewInstanceOverload ¶
func NewInstanceOverload(id string, argTypes []*exprpb.Type, resultType *exprpb.Type) *exprpb.Decl_FunctionDecl_Overload
NewInstanceOverload creates a instance function overload contract. First element of argTypes is instance.
func NewListType ¶
NewListType generates a new list with elements of a certain type.
func NewMapType ¶
NewMapType generates a new map with typed keys and values.
func NewObjectType ¶
NewObjectType creates an object type for a qualified type name.
func NewOptionalType ¶ added in v0.17.3
NewOptionalType constructs an abstract type indicating that the parameterized type may be contained within the object.
func NewOverload ¶
func NewOverload(id string, argTypes []*exprpb.Type, resultType *exprpb.Type) *exprpb.Decl_FunctionDecl_Overload
NewOverload creates a function overload declaration which contains a unique overload id as well as the expected argument and result types. Overloads must be aggregated within a Function declaration.
func NewParameterizedInstanceOverload ¶
func NewParameterizedInstanceOverload(id string, argTypes []*exprpb.Type, resultType *exprpb.Type, typeParams []string) *exprpb.Decl_FunctionDecl_Overload
NewParameterizedInstanceOverload creates a parametric function instance overload type.
func NewParameterizedOverload ¶
func NewParameterizedOverload(id string, argTypes []*exprpb.Type, resultType *exprpb.Type, typeParams []string) *exprpb.Decl_FunctionDecl_Overload
NewParameterizedOverload creates a parametric function overload type.
func NewPrimitiveType ¶
func NewPrimitiveType(primitive exprpb.Type_PrimitiveType) *exprpb.Type
NewPrimitiveType creates a type for a primitive value. See the var declarations for Int, Uint, etc.
func NewTypeParamType ¶
NewTypeParamType creates a type corresponding to a named, contextual parameter.
func NewTypeType ¶
NewTypeType creates a new type designating a type.
func NewWellKnownType ¶
func NewWellKnownType(wellKnown exprpb.Type_WellKnownType) *exprpb.Type
NewWellKnownType creates a type corresponding to a protobuf well-known type value.
Types ¶
This section is empty.