Extends the `Sequence` by appending items from the *iterable*.

        :param iterable: any *iterable* that contains items of :class:`Structure`,
            :class:`Sequence`, :class:`Array` or :class:`Field` instances. If the
            *iterable* is one of these instances itself then the *iterable* itself
            is appended to the `Sequence`.

def extend(self, iterable):
        """ Extends the `Sequence` by appending items from the *iterable*.

        :param iterable: any *iterable* that contains items of :class:`Structure`,
            :class:`Sequence`, :class:`Array` or :class:`Field` instances. If the
            *iterable* is one of these instances itself then the *iterable* itself
            is appended to the `Sequence`.
        """
        # Sequence
        if is_sequence(iterable):
            self._data.extend(iterable)
        # Structure
        elif is_structure(iterable):
            members = [item for item in iterable.values()]
            self._data.extend(members)
        # Field
        elif is_field(iterable):
            self._data.extend([iterable])
        # Iterable
        elif isinstance(iterable, (set, tuple, list)):
            self._data.extend(Sequence(iterable))
        else:
            raise MemberTypeError(self, iterable, member=len(self))