...

Source file src/github.com/doug-martin/goqu/v9/internal/util/value_slice.go

Documentation: github.com/doug-martin/goqu/v9/internal/util

     1  package util
     2  
     3  import (
     4  	"fmt"
     5  	"reflect"
     6  	"sort"
     7  	"strings"
     8  )
     9  
    10  type ValueSlice []reflect.Value
    11  
    12  func (vs ValueSlice) Len() int           { return len(vs) }
    13  func (vs ValueSlice) Less(i, j int) bool { return vs[i].String() < vs[j].String() }
    14  func (vs ValueSlice) Swap(i, j int)      { vs[i], vs[j] = vs[j], vs[i] }
    15  
    16  func (vs ValueSlice) Equal(other ValueSlice) bool {
    17  	sort.Sort(other)
    18  	for i, key := range vs {
    19  		if other[i].String() != key.String() {
    20  			return false
    21  		}
    22  	}
    23  	return true
    24  }
    25  
    26  func (vs ValueSlice) String() string {
    27  	vals := make([]string, vs.Len())
    28  	for i, key := range vs {
    29  		vals[i] = fmt.Sprintf(`"%s"`, key.String())
    30  	}
    31  	sort.Strings(vals)
    32  	return fmt.Sprintf("[%s]", strings.Join(vals, ","))
    33  }
    34  

View as plain text