code: def toggle(self, index, n_cols=70):
          
          data = self.get(index)
  
          if data['type'] == 'Submission':
              # Can't hide the submission!
              pass
  
          elif data['type'] == 'Comment':
              cache = [data]
              count = 1
              for d in self.iterate(index + 1, 1, n_cols):
                  if d['level'] <= data['level']:
                      break
  
                  count += d.get('count', 1)
                  cache.append(d)
  
              comment = {
                  'type': 'HiddenComment',
                  'cache': cache,
                  'count': count,
                  'level': data['level'],
                  'body': 'Hidden',
                  'hidden': True}
  
              self._comment_data[index:index + len(cache)] = [comment]
  
          elif data['type'] == 'HiddenComment':
              self._comment_data[index:index + 1] = data['cache']
  
          elif data['type'] == 'MoreComments':
              with self._loader('Loading comments'):
                  # Undefined behavior if using a nested loader here
                  assert self._loader.depth == 1
                  comments = data['object'].comments(update=True)
              if not self._loader.exception:
                  comments = self.flatten_comments(comments, data['level'])
                  comment_data = [self.strip_praw_comment(c) for c in comments]
                  self._comment_data[index:index + 1] = comment_data
  
          else:
              raise ValueError('%s type not recognized' % data['type'])
docs: Toggle the state of the object at the given index.
  
          If it is a comment, pack it into a hidden comment.
          If it is a hidden comment, unpack it.
          If it is more comments, load the comments.