add MarshalJSON methods to fix dump_consensus_state

This commit is contained in:
Ethan Buchman
2018-04-26 23:11:20 -04:00
parent 390b592dec
commit a2d77cbe4e
3 changed files with 61 additions and 0 deletions

View File

@ -264,3 +264,20 @@ func (ps *PartSet) StringShort() string {
defer ps.mtx.Unlock()
return fmt.Sprintf("(%v of %v)", ps.Count(), ps.Total())
}
func (ps *PartSet) MarshalJSON() ([]byte, error) {
if ps == nil {
return []byte("nil-PartSet"), nil
}
ps.mtx.Lock()
defer ps.mtx.Unlock()
return cdc.MarshalJSON(struct {
CountTotal string `json:"count/total"`
PartsBitArray *cmn.BitArray `json:"parts_bit_array"`
}{
fmt.Sprintf("%d/%d", ps.Count(), ps.Total()),
ps.partsBitArray.Copy(),
})
}