def start_entry(self, target, var_id):
        """Begin a new config database entry.

        If there is a current entry in progress, it is aborted but the
        data was already committed to persistent storage so that space
        is wasted.

        Args:
            target (SlotIdentifer): The target slot for this config variable.
            var_id (int): The config variable ID

        Returns:
            int: An error code from the global Errors enum.
        """

        self.in_progress = ConfigEntry(target, var_id, b'')

        if self.data_size - self.data_index < self.in_progress.data_space():
            return Error.DESTINATION_BUFFER_TOO_SMALL

        self.in_progress.data += struct.pack("<H", var_id)
        self.data_index += self.in_progress.data_space()

        return Error.NO_ERROR
Begin a new config database entry.

        If there is a current entry in progress, it is aborted but the
        data was already committed to persistent storage so that space
        is wasted.

        Args:
            target (SlotIdentifer): The target slot for this config variable.
            var_id (int): The config variable ID

        Returns:
            int: An error code from the global Errors enum.