Documentation ¶
Index ¶
- type CompactBitArray
- func (bA *CompactBitArray) CompactMarshal() []byte
- func (bA *CompactBitArray) Copy() *CompactBitArray
- func (bA *CompactBitArray) GetIndex(i int) bool
- func (bA *CompactBitArray) MarshalJSON() ([]byte, error)
- func (bA *CompactBitArray) NumTrueBitsBefore(index int) int
- func (bA *CompactBitArray) SetIndex(i int, v bool) bool
- func (bA *CompactBitArray) Size() int
- func (bA *CompactBitArray) String() string
- func (bA *CompactBitArray) StringIndented(indent string) string
- func (bA *CompactBitArray) UnmarshalJSON(bz []byte) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CompactBitArray ¶
type CompactBitArray struct { ExtraBitsStored byte `json:"extra_bits"` // The number of extra bits in elems. Elems []byte `json:"bits"` }
CompactBitArray is an implementation of a space efficient bit array. This is used to ensure that the encoded data takes up a minimal amount of space after amino encoding. This is not thread safe, and is not intended for concurrent usage.
func CompactUnmarshal ¶
func CompactUnmarshal(bz []byte) (*CompactBitArray, error)
CompactUnmarshal is a space efficient decoding for CompactBitArray. It is not amino compatible.
func NewCompactBitArray ¶
func NewCompactBitArray(bits int) *CompactBitArray
NewCompactBitArray returns a new compact bit array. It returns nil if the number of bits is zero, or if there is any overflow in the arithmetic to encounter for the number of its elements: (bits+7)/8, or if the number of elements will be an unreasonably large number like > maxint32 aka >2**31.
func (*CompactBitArray) CompactMarshal ¶
func (bA *CompactBitArray) CompactMarshal() []byte
CompactMarshal is a space efficient encoding for CompactBitArray. It is not amino compatible.
func (*CompactBitArray) Copy ¶
func (bA *CompactBitArray) Copy() *CompactBitArray
Copy returns a copy of the provided bit array.
func (*CompactBitArray) GetIndex ¶
func (bA *CompactBitArray) GetIndex(i int) bool
GetIndex returns the bit at index i within the bit array. The behavior is undefined if i >= bA.Size()
func (*CompactBitArray) MarshalJSON ¶
func (bA *CompactBitArray) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler interface by marshaling bit array using a custom format: a string of '-' or 'x' where 'x' denotes the 1 bit.
func (*CompactBitArray) NumTrueBitsBefore ¶
func (bA *CompactBitArray) NumTrueBitsBefore(index int) int
NumTrueBitsBefore returns the number of bits set to true before the given index. e.g. if bA = _XX__XX, NumOfTrueBitsBefore(4) = 2, since there are two bits set to true before index 4.
func (*CompactBitArray) SetIndex ¶
func (bA *CompactBitArray) SetIndex(i int, v bool) bool
SetIndex sets the bit at index i within the bit array. The behavior is undefined if i >= bA.Size()
func (*CompactBitArray) Size ¶
func (bA *CompactBitArray) Size() int
Size returns the number of bits in the bitarray
func (*CompactBitArray) String ¶
func (bA *CompactBitArray) String() string
String returns a string representation of CompactBitArray: BA{<bit-string>}, where <bit-string> is a sequence of 'x' (1) and '_' (0). The <bit-string> includes spaces and newlines to help people. For a simple sequence of 'x' and '_' characters with no spaces or newlines, see the MarshalJSON() method. Example: "BA{_x_}" or "nil-BitArray" for nil.
func (*CompactBitArray) StringIndented ¶
func (bA *CompactBitArray) StringIndented(indent string) string
StringIndented returns the same thing as String(), but applies the indent at every 10th bit, and twice at every 50th bit.
func (*CompactBitArray) UnmarshalJSON ¶
func (bA *CompactBitArray) UnmarshalJSON(bz []byte) error
UnmarshalJSON implements json.Unmarshaler interface by unmarshaling a custom JSON description.