docs: def messages(self):
          '''A generator yielding the :class:`MacIndexMessage`
          structures in this index file.'''
  
          # The file contains the fixed-size file header followed by
          # fixed-size message structures, followed by minimal message
          # information (subject, from, to).  Start after the file
          # header and then simply return the message structures in
          # sequence until we have returned the number of messages in
          # this folder, ignoring the minimal message information at the
          # end of the file.
  
          offset = self.header_length # initial offset
          # how much of the data in this file we expect to use, based on
          # the number of messages in this folder and the index message block size
          maxlen = self.header_length + self.total_messages * MacIndexMessage.LENGTH
          while offset < maxlen:
               yield MacIndexMessage(mm=self.mmap, offset=offset)
               offset += MacIndexMessage.LENGTH