docs: public byte[] toBytes(final int padding) {
      // special case a single entry
      if (padding == 0 && segments.size() == 1) {
        BufferSegment seg = segments.get(0);
        if (seg.offset == 0 && seg.len == seg.buf.length) {
          return seg.buf;
        }
        return Arrays.copyOfRange(seg.buf, seg.offset, seg.offset + seg.len);
      }
      byte[] result = new byte[total_length + padding];
      int ofs = 0;
      for (BufferSegment seg : segments) {
        System.arraycopy(seg.buf, seg.offset, result, ofs, seg.len);
        ofs += seg.len;
      }
      return result;
    }