code: def encode(in_bytes):
      
      if isinstance(in_bytes, str):
          raise TypeError('Unicode-objects must be encoded as bytes first')
      in_bytes_mv = _get_buffer_view(in_bytes)
      out_bytes = bytearray()
      idx = 0
      search_start_idx = 0
      for in_char in in_bytes_mv:
          if idx - search_start_idx == 0xFE:
              out_bytes.append(0xFF)
              out_bytes += in_bytes_mv[search_start_idx:idx]
              search_start_idx = idx
          if in_char == b'\x00':
              out_bytes.append(idx - search_start_idx + 1)
              out_bytes += in_bytes_mv[search_start_idx:idx]
              search_start_idx = idx + 1
          idx += 1
      try:
          final_byte_value = ord(in_bytes_mv[-1])
      except IndexError:
          final_byte_value = 0
      length_value = idx - search_start_idx + 1
      if final_byte_value < length_value:
          # Encoding same as plain COBS
          out_bytes.append(length_value)
          out_bytes += in_bytes_mv[search_start_idx:idx]
      else:
          # Special COBS/R encoding: length code is final byte,
          # and final byte is removed from data sequence.
          out_bytes.append(final_byte_value)
          out_bytes += in_bytes_mv[search_start_idx:idx - 1]
      return bytes(out_bytes)
docs: Encode a string using Consistent Overhead Byte Stuffing/Reduced (COBS/R).
      
      Input is any byte string. Output is also a byte string.
      
      Encoding guarantees no zero bytes in the output. The output
      string may be expanded slightly, by a predictable amount.
      
      An empty string is encoded to '\\x01