code: func (d *Dispatcher) NewHandlerFunc() HandlerFunc {
  	if len(d.serviceMap) == 0 {
  		logPanic("gorpc.Dispatcher: register at least one service before calling HandlerFunc()")
  	}
  
  	serviceMap := copyServiceMap(d.serviceMap)
  
  	return func(clientAddr string, request interface{}) interface{} {
  		req, ok := request.(*dispatcherRequest)
  		if !ok {
  			logPanic("gorpc.Dispatcher: unsupported request type received from the client: %T", request)
  		}
  		return dispatchRequest(serviceMap, clientAddr, req)
  	}
  }
docs: // NewHandlerFunc returns HandlerFunc serving all the functions and/or services
  // registered via AddFunc() and AddService().
  //
  // The returned HandlerFunc must be assigned to Server.Handler or
  // passed to New*Server().