HandlerName returns the handler's function name. See `Context.HandlerName` method to get function name of the current running handler in the chain. See `SetHandlerName` too.
(h interface{})
| 143 | // See `Context.HandlerName` method to get function name of the current running handler in the chain. |
| 144 | // See `SetHandlerName` too. |
| 145 | func HandlerName(h interface{}) string { |
| 146 | pc := valueOf(h).Pointer() |
| 147 | fn := runtime.FuncForPC(pc) |
| 148 | name := fn.Name() |
| 149 | filename, _ := fn.FileLine(fn.Entry()) |
| 150 | filenameLower := strings.ToLower(filename) |
| 151 | |
| 152 | handlerNamesMu.RLock() |
| 153 | for expr, newName := range handlerNames { |
| 154 | if expr.MatchString(name) || expr.MatchFilename(filenameLower) { |
| 155 | name = newName |
| 156 | break |
| 157 | } |
| 158 | } |
| 159 | handlerNamesMu.RUnlock() |
| 160 | |
| 161 | return trimHandlerName(name) |
| 162 | } |
| 163 | |
| 164 | // HandlersNames returns a slice of "handlers" names |
| 165 | // separated by commas. Can be used for debugging |
no test coverage detected
searching dependent graphs…