type Adapter … type Provider … type FieldType … type Registry … // NewRegistry accepts a list of proto message instances and returns a type // provider which can create new instances of the provided message or any // message that proto depends upon in its FileDescriptor. func NewRegistry(types ...proto.Message) (*Registry, error) { … } // NewEmptyRegistry returns a registry which is completely unconfigured. func NewEmptyRegistry() *Registry { … } // Copy copies the current state of the registry into its own memory space. func (p *Registry) Copy() *Registry { … } // EnumValue returns the numeric value of the given enum value name. func (p *Registry) EnumValue(enumName string) ref.Val { … } // FindFieldType returns the field type for a checked type value. Returns false if // the field could not be found. // // Deprecated: use FindStructFieldType func (p *Registry) FindFieldType(structType, fieldName string) (*ref.FieldType, bool) { … } // FindStructFieldNames returns the set of field names for the given struct type, // if the type exists in the registry. func (p *Registry) FindStructFieldNames(structType string) ([]string, bool) { … } // FindStructFieldType returns the field type for a checked type value. Returns // false if the field could not be found. func (p *Registry) FindStructFieldType(structType, fieldName string) (*FieldType, bool) { … } // FindIdent takes a qualified identifier name and returns a ref.Val if one exists. func (p *Registry) FindIdent(identName string) (ref.Val, bool) { … } // FindType looks up the Type given a qualified typeName. Returns false if not found. // // Deprecated: use FindStructType func (p *Registry) FindType(structType string) (*exprpb.Type, bool) { … } // FindStructType returns the Type give a qualified type name. // // For historical reasons, only struct types are expected to be returned through this // method, and the type values are expected to be wrapped in a TypeType instance using // TypeTypeWithParam(<structType>). // // Returns false if not found. func (p *Registry) FindStructType(structType string) (*Type, bool) { … } // NewValue creates a new type value from a qualified name and map of field // name to value. // // Note, for each value, the Val.ConvertToNative function will be invoked // to convert the Val to the field's native type. If an error occurs during // conversion, the NewValue will be a types.Err. func (p *Registry) NewValue(structType string, fields map[string]ref.Val) ref.Val { … } // RegisterDescriptor registers the contents of a protocol buffer `FileDescriptor`. func (p *Registry) RegisterDescriptor(fileDesc protoreflect.FileDescriptor) error { … } // RegisterMessage registers a protocol buffer message and its dependencies. func (p *Registry) RegisterMessage(message proto.Message) error { … } // RegisterType registers a type value with the provider which ensures the provider is aware of how to // map the type to an identifier. // // If the `ref.Type` value is a `*types.Type` it will be registered directly by its runtime type name. // If the `ref.Type` value is not a `*types.Type` instance, a `*types.Type` instance which reflects the // traits present on the input and the runtime type name. By default this foreign type will be treated // as a types.StructKind. To avoid potential issues where the `ref.Type` values does not match the // generated `*types.Type` instance, consider always using the `*types.Type` to represent type extensions // to CEL, even when they're not based on protobuf types. func (p *Registry) RegisterType(types ...ref.Type) error { … } // NativeToValue converts various "native" types to ref.Val with this specific implementation // providing support for custom proto-based types. // // This method should be the inverse of ref.Val.ConvertToNative. func (p *Registry) NativeToValue(value any) ref.Val { … } func (p *Registry) registerAllTypes(fd *pb.FileDescription) error { … } func fieldDescToCELType(field *pb.FieldDescription) *Type { … } func singularFieldDescToCELType(field *pb.FieldDescription) *Type { … } type defaultTypeAdapter … var DefaultTypeAdapter … // NativeToValue implements the ref.TypeAdapter interface. func (a *defaultTypeAdapter) NativeToValue(value any) ref.Val { … } // nativeToValue returns the converted (ref.Val, true) of a conversion is found, // otherwise (nil, false) func nativeToValue(a Adapter, value any) (ref.Val, bool) { … } func msgSetField(target protoreflect.Message, field *pb.FieldDescription, val ref.Val) error { … } func msgSetListField(target protoreflect.List, listField *pb.FieldDescription, listVal traits.Lister) error { … } func msgSetMapField(target protoreflect.Map, mapField *pb.FieldDescription, mapVal traits.Mapper) error { … } func unsupportedTypeConversionError(field *pb.FieldDescription, val ref.Val) error { … } func fieldTypeConversionError(field *pb.FieldDescription, err error) error { … } var ProtoCELPrimitives …