summaryrefslogtreecommitdiff
path: root/internal/regex
diff options
context:
space:
mode:
Diffstat (limited to 'internal/regex')
-rw-r--r--internal/regex/flag.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/internal/regex/flag.go b/internal/regex/flag.go
new file mode 100644
index 0000000..d3ff712
--- /dev/null
+++ b/internal/regex/flag.go
@@ -0,0 +1,42 @@
+package regex
+
+import "fmt"
+
+type Flag int
+
+const (
+ // Undefined flag set
+ Undefined Flag = iota
+ // Default is the default regex mode (positive matching)
+ Default Flag = iota
+ // Invert inverts the regex
+ Invert Flag = iota
+ // Noop means no regex matching enabled, all defaults to true
+ Noop Flag = iota
+)
+
+func NewFlag(str string) (Flag, error) {
+ switch str {
+ case "default":
+ return Default, nil
+ case "invert":
+ return Invert, nil
+ case "noop":
+ return Noop, nil
+ default:
+ return Undefined, fmt.Errorf("unknown regex flag '%s', setting to 'undefined'", str)
+ }
+}
+
+func (f Flag) String() string {
+ switch f {
+ case Default:
+ return "default"
+ case Invert:
+ return "invert"
+ case Noop:
+ return "noop"
+ default:
+ return "undefined"
+ }
+}