code: func (d *Downloader) Wait() error {
  	d.Start()
  	_ = d.pool.Wait()
  	d.updateFileStats(func(s *FileStats) bool {
  		ret := d.finished == false
  		d.finished = true
  		return ret
  	})
  	if d.err != nil {
  		return d.err
  	}
  	return nil
  }
docs: // Wait waits for the completion of the download, and returns either `nil` if
  // no errors occured during the operation, or an `errors.MultiError` otherwise.
  //
  // This will Start() the Downloader, if it hasn't been started already.
  //
  // Calling this many times is safe (and will always return the same thing).