code: func (info *Info) writeFiles(w io.Writer, open func(fi FileInfo) (io.ReadCloser, error)) error {
  	for _, fi := range info.UpvertedFiles() {
  		r, err := open(fi)
  		if err != nil {
  			return fmt.Errorf("error opening %v: %s", fi, err)
  		}
  		wn, err := io.CopyN(w, r, fi.Length)
  		r.Close()
  		if wn != fi.Length {
  			return fmt.Errorf("error copying %v: %s", fi, err)
  		}
  	}
  	return nil
  }
docs: // Concatenates all the files in the torrent into w. open is a function that
  // gets at the contents of the given file.