code: func (iter *ObjectIter) Next() (Object, error) {
  	for {
  		obj, err := iter.EncodedObjectIter.Next()
  		if err != nil {
  			return nil, err
  		}
  
  		o, err := iter.toObject(obj)
  		if err == plumbing.ErrInvalidType {
  			continue
  		}
  
  		if err != nil {
  			return nil, err
  		}
  
  		return o, nil
  	}
  }
docs: // Next moves the iterator to the next object and returns a pointer to it. If
  // there are no more objects, it returns io.EOF.