code: func (bf *BitField) MarshalBinary() ([]byte, error) {
  	ret := make([]byte, binary.MaxVarintLen32+len(bf.data))
  	n := binary.PutUvarint(ret, uint64(bf.size))
  	n += copy(ret[n:], bf.data)
  	return ret[:n], nil
  }
docs: // MarshalBinary implements encoding.BinaryMarshaller