summaryrefslogtreecommitdiff
path: root/internal/regex
diff options
context:
space:
mode:
authorPaul Buetow <pbuetow@mimecast.com>2020-09-04 17:23:21 +0300
committerPaul Buetow <pbuetow@mimecast.com>2020-09-04 17:23:21 +0300
commitedee62717fbe752556d702c029a5b39de1b04677 (patch)
treee3c6d99d7a08e0005fd6340c664fb11912b89679 /internal/regex
parentc562a013ef7e40e3a7f6126a6d327552f2bc557f (diff)
fix regex bug
Diffstat (limited to 'internal/regex')
-rw-r--r--internal/regex/regex.go16
1 files changed, 13 insertions, 3 deletions
diff --git a/internal/regex/regex.go b/internal/regex/regex.go
index e870797..707cb48 100644
--- a/internal/regex/regex.go
+++ b/internal/regex/regex.go
@@ -15,15 +15,20 @@ type Regex struct {
re *regexp.Regexp
// For now only use the first flag at flags[0], but in the future we can
// set and use multiple flags.
- flags []Flag
+ flags []Flag
+ initialized bool
}
func (r Regex) String() string {
- return fmt.Sprintf("Regex(regexStr:%s,flags:%s,re==nil:%t)", r.regexStr, r.flags, r.re == nil)
+ return fmt.Sprintf("Regex(regexStr:%s,flags:%s,initialized:%t,re==nil:%t)",
+ r.regexStr, r.flags, r.initialized, r.re == nil)
}
func NewNoop() Regex {
- return Regex{flags: []Flag{Noop}}
+ return Regex{
+ flags: []Flag{Noop},
+ initialized: true,
+ }
}
func New(regexStr string, flag Flag) (Regex, error) {
@@ -46,6 +51,7 @@ func new(regexStr string, flags []Flag) (Regex, error) {
}
r.re = re
+ r.initialized = true
return r, nil
}
@@ -81,6 +87,10 @@ func (r Regex) Serialize() string {
flags = append(flags, flag.String())
}
+ if !r.initialized {
+ logger.FatalExit("Unable to serialize regex as not initialized properly", r)
+ }
+
return fmt.Sprintf("regex:%s %s", strings.Join(flags, ","), r.regexStr)
}