code: def decode(in_bytes):
      
      if isinstance(in_bytes, str):
          raise TypeError('Unicode-objects are not supported; byte buffer objects only')
      in_bytes_mv = _get_buffer_view(in_bytes)
      out_bytes = bytearray()
      idx = 0
  
      if len(in_bytes_mv) > 0:
          while True:
              length = ord(in_bytes_mv[idx])
              if length == 0:
                  raise DecodeError("zero byte found in input")
              idx += 1
              end = idx + length - 1
              copy_mv = in_bytes_mv[idx:end]
              if b'\x00' in copy_mv:
                  raise DecodeError("zero byte found in input")
              out_bytes += copy_mv
              idx = end
              if idx > len(in_bytes_mv):
                  raise DecodeError("not enough input bytes for length code")
              if idx < len(in_bytes_mv):
                  if length < 0xFF:
                      out_bytes.append(0)
              else:
                  break
      return bytes(out_bytes)
docs: Decode a string using Consistent Overhead Byte Stuffing (COBS).
      
      Input should be a byte string that has been COBS encoded. Output
      is also a byte string.
      
      A cobs.DecodeError exception will be raised if the encoded data
      is invalid.