code: func (d *Dispatcher) handler(payload proto.Message) (handler, error) {
  	name := proto.MessageName(payload)
  
  	d.mu.RLock()
  	defer d.mu.RUnlock()
  
  	handler, registered := d.handlers[name]
  	if !registered {
  		return handler, fmt.Errorf("handler for %q is not registered", name)
  	}
  	return handler, nil
  }
docs: // handler returns a handler struct registered with Register.