summaryrefslogtreecommitdiff
path: root/internal/regex/flag.go
blob: 396bda087b63a499e6c09c9b3768284273d6f71d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package regex

import "fmt"

// Flag for regex.
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
)

// NewFlag returns a new regex flag.
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"
	}
}