 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DRAConsumableCapacity ¶ added in v0.34.0
func DRAConsumableCapacity() bool
func GetCompiler ¶
func GetCompiler(features Features) *compiler
func SetDRAConsumableCapacity ¶ added in v0.34.0
func SetDRAConsumableCapacity()
func UnsetDRAConsumableCapacity ¶ added in v0.34.0
func UnsetDRAConsumableCapacity()
Types ¶
type Cache ¶ added in v0.32.0
type Cache struct {
	// contains filtered or unexported fields
}
    Cache is a thread-safe LRU cache for a compiled CEL expression.
func NewCache ¶ added in v0.32.0
NewCache creates a cache. The maximum number of entries determines how many entries are cached at most before dropping the oldest entry.
The features are used to get a suitable compiler.
func (*Cache) Check ¶ added in v0.34.0
func (c *Cache) Check(expression string) CompilationResult
func (*Cache) GetOrCompile ¶ added in v0.32.0
func (c *Cache) GetOrCompile(expression string) CompilationResult
GetOrCompile checks whether the cache already has a compilation result and returns that if available. Otherwise it compiles, stores successful results and returns the new result.
Cost estimation is disabled.
type CompilationResult ¶
type CompilationResult struct {
	Program     cel.Program
	Error       *apiservercel.Error
	Expression  string
	OutputType  *cel.Type
	Environment *cel.Env
	// MaxCost represents the worst-case cost of the compiled MessageExpression in terms of CEL's cost units,
	// as used by cel.EstimateCost.
	MaxCost uint64
	// contains filtered or unexported fields
}
    CompilationResult represents a compiled expression.
func (CompilationResult) DeviceMatches ¶
func (c CompilationResult) DeviceMatches(ctx context.Context, input Device) (bool, *cel.EvalDetails, error)
type Device ¶
type Device struct {
	// Driver gets used as domain for any attribute which does not already
	// have a domain prefix. If set, then it is also made available as a
	// string attribute.
	Driver                   string
	AllowMultipleAllocations *bool
	Attributes               map[resourceapi.QualifiedName]resourceapi.DeviceAttribute
	Capacity                 map[resourceapi.QualifiedName]resourceapi.DeviceCapacity
}
    Device defines the input values for a CEL selector expression.
type Features ¶ added in v0.34.0
type Features struct {
	EnableConsumableCapacity bool
}
    Features contains feature gates supported by the package.
type Options ¶ added in v0.32.0
type Options struct {
	// EnvType allows to override the default environment type [environment.StoredExpressions].
	EnvType *environment.Type
	// CostLimit allows overriding the default runtime cost limit [resourceapi.CELSelectorExpressionMaxCost].
	CostLimit *uint64
	// DisableCostEstimation can be set to skip estimating the worst-case CEL cost.
	// If disabled or after an error, [CompilationResult.MaxCost] will be set to [math.Uint64].
	DisableCostEstimation bool
}
    Options contains several additional parameters for [CompileCELExpression]. All of them have reasonable defaults.