cue: add String method for Op
Change-Id: Iebe2ecdd0a62538a58cb8be47ebacf8e12c4ffa6
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/2346
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/cue/op.go b/cue/op.go
index 214e3c8..5b4300d 100644
--- a/cue/op.go
+++ b/cue/op.go
@@ -20,6 +20,10 @@
// use to evaluate a value.
type Op int
+func (o Op) String() string {
+ return opToString[o]
+}
+
// Values of Op.
const (
NoOp Op = iota
@@ -84,6 +88,37 @@
opIMod: IntModuloOp,
}
+var opToString = map[Op]string{
+ AndOp: "&",
+ OrOp: "|",
+ BooleanAndOp: "&&",
+ BooleanOrOp: "||",
+ EqualOp: "==",
+ NotOp: "!",
+ NotEqualOp: "!=",
+ LessThanOp: "<",
+ LessThanEqualOp: "<=",
+ GreaterThanOp: ">",
+ GreaterThanEqualOp: ">=",
+ RegexMatchOp: "=~",
+ NotRegexMatchOp: "!~",
+ AddOp: "+",
+ SubtractOp: "-",
+ MultiplyOp: "*",
+ FloatQuotientOp: "/",
+ FloatRemainOp: "%",
+ IntQuotientOp: "quo",
+ IntRemainderOp: "rem",
+ IntDivideOp: "div",
+ IntModuloOp: "mod",
+
+ SelectorOp: ".",
+ IndexOp: "[]",
+ SliceOp: "[:]",
+ CallOp: "()",
+ InterpolationOp: `\()`,
+}
+
func opIn(op op, anyOf ...op) bool {
for _, o := range anyOf {
if o == op {
diff --git a/cue/types_test.go b/cue/types_test.go
index f24011b..8e819f5 100644
--- a/cue/types_test.go
+++ b/cue/types_test.go
@@ -2016,34 +2016,3 @@
})
}
}
-
-var opToString = map[Op]string{
- AndOp: "&",
- OrOp: "|",
- BooleanAndOp: "&&",
- BooleanOrOp: "||",
- EqualOp: "==",
- NotOp: "!",
- NotEqualOp: "!=",
- LessThanOp: "<",
- LessThanEqualOp: "<=",
- GreaterThanOp: ">",
- GreaterThanEqualOp: ">=",
- RegexMatchOp: "=~",
- NotRegexMatchOp: "!~",
- AddOp: "+",
- SubtractOp: "-",
- MultiplyOp: "*",
- FloatQuotientOp: "/",
- FloatRemainOp: "%",
- IntQuotientOp: "quo",
- IntRemainderOp: "rem",
- IntDivideOp: "div",
- IntModuloOp: "mod",
-
- SelectorOp: ".",
- IndexOp: "[]",
- SliceOp: "[:]",
- CallOp: "()",
- InterpolationOp: `\()`,
-}