package ref
import "github.com/google/cel-go/common/types/ref"
Package ref contains the reference interfaces used throughout the types components.
Index ¶
Types ¶
type FieldType ¶
type FieldType struct { // SupportsPresence indicates if the field having been set can be detected. SupportsPresence bool // Type of the field. Type *exprpb.Type }
FieldType represents a field's type value and whether that field supports presence detection.
type Type ¶
type Type interface { // HasTrait returns whether the type has a given trait associated with it. // // See common/types/traits/traits.go for a list of supported traits. HasTrait(trait int) bool // TypeName returns the qualified type name of the type. // // The type name is also used as the type's identifier name at type-check // and interpretation time. TypeName() string }
Type interface indicate the name of a given type.
type TypeProvider ¶
type TypeProvider interface { // EnumValue returns the numeric value of the given enum value name. EnumValue(enumName string) Val // FindIdent takes a qualified identifier name and returns a Value if one // exists. FindIdent(identName string) (Val, bool) // FindType looks up the Type given a qualified typeName. Returns false // if not found. // // Used during type-checking only. FindType(typeName string) (*exprpb.Type, bool) // FieldFieldType returns the field type for a checked type value. Returns // false if the field could not be found. // // Used during type-checking only. FindFieldType(t *exprpb.Type, fieldName string) (*FieldType, bool) // NewValue creates a new type value from a qualified name and a map of // field initializers. NewValue(typeName string, fields map[string]Val) Val // RegisterType registers a type value with the provider which ensures the // provider is aware of how to map the type to an identifier. // // If a type is provided more than once with an alternative definition, the // call will result in an error. RegisterType(types ...Type) error }
TypeProvider specifies functions for creating new object instances and for resolving enum values by name.
type Val ¶
type Val interface { // ConvertToNative converts the Value to a native Go struct according to the // reflected type description, or error if the conversion is not feasible. ConvertToNative(typeDesc reflect.Type) (interface{}, error) // ConvertToType supports type conversions between value types supported by // the expression language. ConvertToType(typeValue Type) Val // Equal returns true if the `other` value has the same type and content as // the implementing struct. Equal(other Val) Val // Type returns the TypeValue of the value. Type() Type // Value returns the raw value of the instance which may not be directly // compatible with the expression language types. Value() interface{} }
Val interface defines the functions supported by all expression values. Val implementations may specialize the behavior of the value through the addition of traits.
Source Files ¶
- Version
- v0.1.0
- Published
- Feb 5, 2019
- Platform
- js/wasm
- Imports
- 2 packages
- Last checked
- 2 seconds ago –
Tools for package owners.