package surf // RouteInfo is a read-only snapshot of one registered route after Assemble // or BuildRouter. type RouteInfo struct { Method string Pattern string PluginID string Middleware []string Raw bool } // Routes returns a defensive copy of every registered route. func (r *Router) Routes() []RouteInfo { if r == nil { return nil } out := make([]RouteInfo, len(r.routes)) for i, rt := range r.routes { mw := append([]string{}, rt.middleware...) out[i] = RouteInfo{ Method: rt.method, Pattern: rt.path, PluginID: rt.pluginID, Middleware: mw, Raw: rt.raw, } } return out }