lib/storage: generate more human-friendly result in TagFilters.String

This commit is contained in:
Aliaksandr Valialkin 2019-12-02 13:51:13 +02:00
parent 9476b73527
commit 70b8191fab

View File

@ -68,10 +68,15 @@ func (tfs *TagFilters) Add(key, value []byte, isNegative, isRegexp bool) error {
// String returns human-readable value for tfs. // String returns human-readable value for tfs.
func (tfs *TagFilters) String() string { func (tfs *TagFilters) String() string {
if len(tfs.tfs) == 0 {
return "{}"
}
var bb bytes.Buffer var bb bytes.Buffer
for i := range tfs.tfs { fmt.Fprintf(&bb, "{%s", tfs.tfs[0].String())
for i := range tfs.tfs[1:] {
fmt.Fprintf(&bb, ", %s", tfs.tfs[i].String()) fmt.Fprintf(&bb, ", %s", tfs.tfs[i].String())
} }
fmt.Fprintf(&bb, "}")
return bb.String() return bb.String()
} }
@ -110,11 +115,16 @@ type tagFilter struct {
// String returns human-readable tf value. // String returns human-readable tf value.
func (tf *tagFilter) String() string { func (tf *tagFilter) String() string {
var bb bytes.Buffer op := "="
fmt.Fprintf(&bb, "[isNegative=%v, isRegexp=%v, prefix=%q", tf.isNegative, tf.isRegexp, tf.prefix) if tf.isNegative {
fmt.Fprintf(&bb, ", orSuffixes=%v, reSuffixMatch=%p", tf.orSuffixes, tf.reSuffixMatch) op = "!="
fmt.Fprintf(&bb, "]") if tf.isRegexp {
return bb.String() op = "!~"
}
} else if tf.isRegexp {
op = "=~"
}
return fmt.Sprintf("%s%s%q", tf.key, op, tf.value)
} }
// Marshal appends marshaled tf to dst // Marshal appends marshaled tf to dst