github.com/Finschia/finschia-sdk@v0.48.1/types/kv/kv.go (about) 1 package kv 2 3 import ( 4 "bytes" 5 "sort" 6 ) 7 8 func (kvs Pairs) Len() int { return len(kvs.Pairs) } 9 func (kvs Pairs) Less(i, j int) bool { 10 switch bytes.Compare(kvs.Pairs[i].Key, kvs.Pairs[j].Key) { 11 case -1: 12 return true 13 14 case 0: 15 return bytes.Compare(kvs.Pairs[i].Value, kvs.Pairs[j].Value) < 0 16 17 case 1: 18 return false 19 20 default: 21 panic("invalid comparison result") 22 } 23 } 24 25 func (kvs Pairs) Swap(i, j int) { kvs.Pairs[i], kvs.Pairs[j] = kvs.Pairs[j], kvs.Pairs[i] } 26 27 // Sort invokes sort.Sort on kvs. 28 func (kvs Pairs) Sort() { sort.Sort(kvs) }