code: func (d *Decoder) NextChunk() (*chunk.Reader, error) {
  	var err error
  
  	if err = d.readHeaders(); err != nil {
  		return nil, err
  	}
  
  	var (
  		id   [4]byte
  		size int64
  	)
  
  	id, size, d.err = d.iDnSize()
  	if d.err != nil {
  		if d.err == io.EOF || d.err == io.ErrUnexpectedEOF {
  			return nil, io.EOF
  		}
  		return nil, fmt.Errorf("error reading chunk header - %v", d.err)
  	}
  
  	c := &chunk.Reader{
  		ID:   id,
  		Size: int(size),
  		R:    io.LimitReader(d.r, int64(size)),
  	}
  
  	return c, d.err
  }
docs: // NextChunk returns the next available chunk