code: func suitableCallbacks(receiver reflect.Value) map[string]*callback {
  	typ := receiver.Type()
  	callbacks := make(map[string]*callback)
  	for m := 0; m < typ.NumMethod(); m++ {
  		method := typ.Method(m)
  		if method.PkgPath != "" {
  			continue // method not exported
  		}
  		cb := newCallback(receiver, method.Func)
  		if cb == nil {
  			continue // function invalid
  		}
  		name := formatName(method.Name)
  		callbacks[name] = cb
  	}
  	return callbacks
  }
docs: // suitableCallbacks iterates over the methods of the given type. It determines if a method
  // satisfies the criteria for a RPC callback or a subscription callback and adds it to the
  // collection of callbacks. See server documentation for a summary of these criteria.