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) }