code: func (t *Transport) RegisterProtocol(scheme string, rt RoundTripper) {
  	if scheme == "http" || scheme == "https" {
  		panic("protocol " + scheme + " already registered")
  	}
  	t.lk.Lock()
  	defer t.lk.Unlock()
  	if t.altProto == nil {
  		t.altProto = make(map[string]RoundTripper)
  	}
  	if _, exists := t.altProto[scheme]; exists {
  		panic("protocol " + scheme + " already registered")
  	}
  	t.altProto[scheme] = rt
  }
docs: // RegisterProtocol registers a new protocol with scheme.
  // The Transport will pass requests using the given scheme to rt.
  // It is rt's responsibility to simulate HTTP request semantics.
  //
  // RegisterProtocol can be used by other packages to provide
  // implementations of protocol schemes like "ftp" or "file".