types: compile time assert to, and document sort.Interface
Fixes #212 Declare the purpose of the Less, Len, Swap methods so that readers can see why they are defined. Raised by an auditor in their report, as it looked like a security concern but actually sort.Interface requires those methods implemented.
This commit is contained in:
parent
d5361de300
commit
121f0d3fcf
|
@ -3,6 +3,7 @@ package types
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"sort"
|
||||||
)
|
)
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
@ -10,6 +11,14 @@ import (
|
||||||
// Validators is a list of validators that implements the Sort interface
|
// Validators is a list of validators that implements the Sort interface
|
||||||
type Validators []Validator
|
type Validators []Validator
|
||||||
|
|
||||||
|
var _ sort.Interface = (Validators)(nil)
|
||||||
|
|
||||||
|
// All these methods for Validators:
|
||||||
|
// Len, Less and Swap
|
||||||
|
// are for Validators to implement sort.Interface
|
||||||
|
// which will be used by the sort package.
|
||||||
|
// See Issue https://github.com/tendermint/abci/issues/212
|
||||||
|
|
||||||
func (v Validators) Len() int {
|
func (v Validators) Len() int {
|
||||||
return len(v)
|
return len(v)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue