func (eh EqualHandler) Evaluate(key, value interface{}) bool {
	switch typedKey := key.(type) {
	case bool:
		return eh.validateValueWithBoolPattern(typedKey, value)
	case int:
		return eh.validateValueWithIntPattern(int64(typedKey), value)
	case int64:
		return eh.validateValueWithIntPattern(typedKey, value)
	case float64:
		return eh.validateValueWithFloatPattern(typedKey, value)
	case string:
		return eh.validateValueWithStringPattern(typedKey, value)
	case map[string]interface{}:
		return eh.validateValueWithMapPattern(typedKey, value)
	case []interface{}:
		return eh.validateValueWithSlicePattern(typedKey, value)
	default:
		eh.log.Info("Unsupported type", "value", typedKey, "type", fmt.Sprintf("%T", typedKey))
		return false
	}
}
Evaluate evaluates expression with Equal Operator
package operator
import (
	"fmt"
	"math"
	"reflect"
	"strconv"
	"github.com/minio/pkg/wildcard"
	"github.com/go-logr/logr"
	"github.com/kyverno/kyverno/pkg/engine/context"
)
func NewEqualHandler(log logr.Logger, ctx context.EvalInterface) OperatorHandler {
	return EqualHandler{
		ctx: ctx,
		log: log,
	}
}
type EqualHandler struct {
	ctx context.EvalInterface
	log logr.Logger
}