type TypeProvider … var _ … // EnumValue returns the numeric value of the given enum value name. // This TypeProvider does not have special handling for EnumValue and thus directly delegate // to its underlying type provider. func (p *TypeProvider) EnumValue(enumName string) ref.Val { … } // FindIdent takes a qualified identifier name and returns a ref.ObjectVal if one exists. // This TypeProvider does not have special handling for FindIdent and thus directly delegate // to its underlying type provider. func (p *TypeProvider) FindIdent(identName string) (ref.Val, bool) { … } // FindStructType returns the Type give a qualified type name, by looking it up with // the TypeResolver and translating it to CEL Type. // If the type is not known to the TypeResolver, the lookup falls back to the underlying // TypeProvider instead. func (p *TypeProvider) FindStructType(structType string) (*types.Type, bool) { … } // FindStructFieldNames returns the field names associated with the type, if the type // is found. func (p *TypeProvider) 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 *TypeProvider) FindStructFieldType(structType, fieldName string) (*types.FieldType, bool) { … } // NewValue creates a new type value from a qualified name and map of fields. func (p *TypeProvider) NewValue(structType string, fields map[string]ref.Val) ref.Val { … } // NewTypeProviderAndEnvOption creates the TypeProvider with a given TypeResolver, // and also returns the CEL EnvOption to apply it to the env. func NewTypeProviderAndEnvOption(resolver common.TypeResolver) (*TypeProvider, cel.EnvOption) { … }