type BitField … func (b BitField) String() string { … } // Parse extracts the bitfield b from i, and return it as an unsigned integer. // Parse will panic if b is invalid. func (b BitField) Parse(i uint64) uint64 { … } // ParseSigned extracts the bitfield b from i, and return it as a signed integer. // ParseSigned will panic if b is invalid. func (b BitField) ParseSigned(i uint64) int64 { … } type BitFields … func (bs BitFields) String() string { … } func (bs *BitFields) Append(b BitField) { … } // parse extracts the bitfields from i, concatenate them and return the result // as an unsigned integer and the total length of all the bitfields. // parse will panic if any bitfield in b is invalid, but it doesn't check if // the sequence of bitfields is reasonable. func (bs BitFields) parse(i uint64) (u uint64, Bits uint8) { … } // Parse extracts the bitfields from i, concatenate them and return the result // as an unsigned integer. Parse will panic if any bitfield in b is invalid. func (bs BitFields) Parse(i uint64) uint64 { … } // ParseSigned extracts the bitfields from i, concatenate them and return the result // as a signed integer. Parse will panic if any bitfield in b is invalid. func (bs BitFields) ParseSigned(i uint64) int64 { … } // Count the number of bits in the aggregate BitFields func (bs BitFields) NumBits() int { … }