code: func (m *Manifest) RegisterNewAdapterFunc(name string, dir Direction, f NewAdapterFunc) {
  	m.mu.Lock()
  	defer m.mu.Unlock()
  
  	switch dir {
  	case Upload:
  		m.uploadAdapterFuncs[name] = f
  	case Download:
  		m.downloadAdapterFuncs[name] = f
  	}
  }
docs: // RegisterNewTransferAdapterFunc registers a new function for creating upload
  // or download adapters. If a function with that name & direction is already
  // registered, it is overridden