summaryrefslogtreecommitdiff
path: root/internal/rpn/operations_interfaces.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rpn/operations_interfaces.go')
-rw-r--r--internal/rpn/operations_interfaces.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/internal/rpn/operations_interfaces.go b/internal/rpn/operations_interfaces.go
index 7542993..cc60db2 100644
--- a/internal/rpn/operations_interfaces.go
+++ b/internal/rpn/operations_interfaces.go
@@ -101,6 +101,20 @@ type CustomMetricManager interface {
CustomUndefine(name string) error
}
+// OperatorProvider combines all operator interfaces needed by the OperatorRegistry.
+// This satisfies DIP by decoupling the registry from the concrete *Operations type.
+type OperatorProvider interface {
+ ArithmeticOperator
+ PowerIntOperator
+ LogarithmicOperator
+ BooleanOperator
+ StackOperator
+ VariableOperator
+ ConstantOperator
+ MetricOperator
+ HyperOperator
+}
+
// OperationsProvider combines all interfaces that RPN needs from Operations.
// RPN depends on this interface (DIP) rather than the concrete *Operations type.
type OperationsProvider interface {