docs: def cut(self, bits, start=None, end=None, count=None):
          """Return bitstring generator by cutting into bits sized chunks.
  
          bits -- The size in bits of the bitstring chunks to generate.
          start -- The bit position to start the first cut. Defaults to 0.
          end -- The bit position one past the last bit to use in the cut.
                 Defaults to self.len.
          count -- If specified then at most count items are generated.
                   Default is to cut as many times as possible.
  
          """
          start, end = self._validate_slice(start, end)
          if count is not None and count < 0:
              raise ValueError("Cannot cut - count must be >= 0.")
          if bits <= 0:
              raise ValueError("Cannot cut - bits must be >= 0.")
          c = 0
          while count is None or c < count:
              c += 1
              nextchunk = self._slice(start, min(start + bits, end))
              if nextchunk.len != bits:
                  return
              assert nextchunk._assertsanity()
              yield nextchunk
              start += bits
          return