code: func NewRootMappingFs(fs afero.Fs, fromTo ...string) (*RootMappingFs, error) {
  	rootMapToReal := radix.New().Txn()
  	var virtualRoots []string
  
  	for i := 0; i < len(fromTo); i += 2 {
  		vr := filepath.Clean(fromTo[i])
  		rr := filepath.Clean(fromTo[i+1])
  
  		// We need to preserve the original order for Readdir
  		virtualRoots = append(virtualRoots, vr)
  
  		rootMapToReal.Insert([]byte(vr), rr)
  	}
  
  	return &RootMappingFs{Fs: fs,
  		virtualRoots:  virtualRoots,
  		rootMapToReal: rootMapToReal.Commit().Root()}, nil
  }
docs: // NewRootMappingFs creates a new RootMappingFs on top of the provided with
  // a list of from, to string pairs of root mappings.
  // Note that 'from' represents a virtual root that maps to the actual filename in 'to'.