code: func validateAndWrapHandlers(handlers []Handler, wrappers ...func(Handler) Handler) []Handler {
  	var wrapper func(Handler) Handler
  	if len(wrappers) > 0 {
  		wrapper = wrappers[0]
  	}
  
  	wrappedHandlers := make([]Handler, len(handlers))
  	for i, h := range handlers {
  		h = validateAndWrapHandler(h)
  		if wrapper != nil && !inject.IsFastInvoker(h) {
  			h = wrapper(h)
  		}
  		wrappedHandlers[i] = h
  	}
  
  	return wrappedHandlers
  }
docs: // validateAndWrapHandlers preforms validation and wrapping for each input handler.
  // It accepts an optional wrapper function to perform custom wrapping on handlers.