mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-14 18:53:35 +00:00
rebase: bump the golang-dependencies group with 1 update
Bumps the golang-dependencies group with 1 update: [golang.org/x/crypto](https://github.com/golang/crypto). Updates `golang.org/x/crypto` from 0.16.0 to 0.17.0 - [Commits](https://github.com/golang/crypto/compare/v0.16.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor dependency-group: golang-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
committed by
mergify[bot]
parent
1ad79314f9
commit
e5d9b68d36
61
vendor/github.com/google/cel-go/ext/sets.go
generated
vendored
61
vendor/github.com/google/cel-go/ext/sets.go
generated
vendored
@ -15,10 +15,14 @@
|
||||
package ext
|
||||
|
||||
import (
|
||||
"math"
|
||||
|
||||
"github.com/google/cel-go/cel"
|
||||
"github.com/google/cel-go/checker"
|
||||
"github.com/google/cel-go/common/types"
|
||||
"github.com/google/cel-go/common/types/ref"
|
||||
"github.com/google/cel-go/common/types/traits"
|
||||
"github.com/google/cel-go/interpreter"
|
||||
)
|
||||
|
||||
// Sets returns a cel.EnvOption to configure namespaced set relationship
|
||||
@ -95,12 +99,24 @@ func (setsLib) CompileOptions() []cel.EnvOption {
|
||||
cel.Function("sets.intersects",
|
||||
cel.Overload("list_sets_intersects_list", []*cel.Type{listType, listType}, cel.BoolType,
|
||||
cel.BinaryBinding(setsIntersects))),
|
||||
cel.CostEstimatorOptions(
|
||||
checker.OverloadCostEstimate("list_sets_contains_list", estimateSetsCost(1)),
|
||||
checker.OverloadCostEstimate("list_sets_intersects_list", estimateSetsCost(1)),
|
||||
// equivalence requires potentially two m*n comparisons to ensure each list is contained by the other
|
||||
checker.OverloadCostEstimate("list_sets_equivalent_list", estimateSetsCost(2)),
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
// ProgramOptions implements the Library interface method.
|
||||
func (setsLib) ProgramOptions() []cel.ProgramOption {
|
||||
return []cel.ProgramOption{}
|
||||
return []cel.ProgramOption{
|
||||
cel.CostTrackerOptions(
|
||||
interpreter.OverloadCostTracker("list_sets_contains_list", trackSetsCost(1)),
|
||||
interpreter.OverloadCostTracker("list_sets_intersects_list", trackSetsCost(1)),
|
||||
interpreter.OverloadCostTracker("list_sets_equivalent_list", trackSetsCost(2)),
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
func setsIntersects(listA, listB ref.Val) ref.Val {
|
||||
@ -136,3 +152,46 @@ func setsEquivalent(listA, listB ref.Val) ref.Val {
|
||||
}
|
||||
return setsContains(listB, listA)
|
||||
}
|
||||
|
||||
func estimateSetsCost(costFactor float64) checker.FunctionEstimator {
|
||||
return func(estimator checker.CostEstimator, target *checker.AstNode, args []checker.AstNode) *checker.CallEstimate {
|
||||
if len(args) == 2 {
|
||||
arg0Size := estimateSize(estimator, args[0])
|
||||
arg1Size := estimateSize(estimator, args[1])
|
||||
costEstimate := arg0Size.Multiply(arg1Size).MultiplyByCostFactor(costFactor).Add(callCostEstimate)
|
||||
return &checker.CallEstimate{CostEstimate: costEstimate}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func estimateSize(estimator checker.CostEstimator, node checker.AstNode) checker.SizeEstimate {
|
||||
if l := node.ComputedSize(); l != nil {
|
||||
return *l
|
||||
}
|
||||
if l := estimator.EstimateSize(node); l != nil {
|
||||
return *l
|
||||
}
|
||||
return checker.SizeEstimate{Min: 0, Max: math.MaxUint64}
|
||||
}
|
||||
|
||||
func trackSetsCost(costFactor float64) interpreter.FunctionTracker {
|
||||
return func(args []ref.Val, _ ref.Val) *uint64 {
|
||||
lhsSize := actualSize(args[0])
|
||||
rhsSize := actualSize(args[1])
|
||||
cost := callCost + uint64(float64(lhsSize*rhsSize)*costFactor)
|
||||
return &cost
|
||||
}
|
||||
}
|
||||
|
||||
func actualSize(value ref.Val) uint64 {
|
||||
if sz, ok := value.(traits.Sizer); ok {
|
||||
return uint64(sz.Size().(types.Int))
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
var (
|
||||
callCostEstimate = checker.CostEstimate{Min: 1, Max: 1}
|
||||
callCost = uint64(1)
|
||||
)
|
||||
|
Reference in New Issue
Block a user