code: def serialize(self, buffer=bytearray(), index=Index(), **options):
          
          self.index = index
          buffer += self.pack(buffer, **options)
          return self.index_field(index)
docs: Serializes the `Field` to the byte *buffer* starting at the begin
          of the *buffer* or with the given *index* by packing the :attr:`value`
          of the `Field` to the byte *buffer* in accordance with the encoding
          *byte order* for the serialization and the encoding :attr:`byte_order`
          of the `Field`.
  
          The specific encoding :attr:`byte_order` of the `Field` overrules the
          encoding *byte order* for the serialization.
  
          Returns the :class:`Index` of the *buffer* after the `Field`.
  
          Optional the serialization of the referenced :attr:`~Pointer.data` object
          of a :class:`Pointer` field can be enabled.
  
          :param bytearray buffer: byte stream.
          :param Index index: current write :class:`Index` of the *buffer*.
          :keyword byte_order: encoding byte order for the serialization.
          :type byte_order: :class:`Byteorder`, :class:`str`
          :keyword bool nested: if ``True`` a :class:`Pointer` field serializes
              its referenced :attr:`~Pointer.data` object as well
              (chained method call).
              Each :class:`Pointer` field uses for the encoding of its referenced
              :attr:`~Pointer.data` object its own :attr:`~Pointer.bytestream`.