2018-04-26 07:14:51 -07:00
|
|
|
package types
|
|
|
|
|
|
|
|
import (
|
|
|
|
cmn "github.com/tendermint/tmlibs/common"
|
|
|
|
)
|
|
|
|
|
2018-04-26 07:18:01 -07:00
|
|
|
// Type synonym for convenience
|
2018-04-26 07:14:51 -07:00
|
|
|
type Tag = cmn.KVPair
|
|
|
|
|
2018-04-26 07:18:01 -07:00
|
|
|
// Type synonym for convenience
|
2018-05-09 15:47:28 -07:00
|
|
|
type Tags cmn.KVPairs
|
2018-04-26 07:14:51 -07:00
|
|
|
|
|
|
|
// New empty tags
|
|
|
|
func EmptyTags() Tags {
|
|
|
|
return make(Tags, 0)
|
|
|
|
}
|
|
|
|
|
2018-05-09 15:47:28 -07:00
|
|
|
// Append a single tag
|
|
|
|
func (t Tags) AppendTag(k string, v []byte) Tags {
|
|
|
|
return append(t, MakeTag(k, v))
|
|
|
|
}
|
|
|
|
|
|
|
|
// Append two lists of tags
|
2018-05-10 08:14:46 -07:00
|
|
|
func (t Tags) AppendTags(a Tags) Tags {
|
|
|
|
return append(t, a...)
|
2018-05-09 15:47:28 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
// New variadic tags, must be k string, v []byte repeating
|
|
|
|
func NewTags(tags ...interface{}) Tags {
|
|
|
|
var ret Tags
|
|
|
|
if len(tags)%2 != 0 {
|
|
|
|
panic("must specify key-value pairs as varargs")
|
|
|
|
}
|
|
|
|
i := 0
|
|
|
|
for {
|
|
|
|
if i == len(tags) {
|
|
|
|
break
|
|
|
|
}
|
|
|
|
ret = append(ret, Tag{Key: []byte(tags[i].(string)), Value: tags[i+1].([]byte)})
|
|
|
|
i += 2
|
|
|
|
}
|
|
|
|
return ret
|
2018-04-26 07:14:51 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
// Make a tag from a key and a value
|
|
|
|
func MakeTag(k string, v []byte) Tag {
|
|
|
|
return Tag{Key: []byte(k), Value: v}
|
|
|
|
}
|