37 lines
830 B
Go
37 lines
830 B
Go
|
package swagger
|
||
|
|
||
|
// Copyright 2015 Ernest Micklei. All rights reserved.
|
||
|
// Use of this source code is governed by a license
|
||
|
// that can be found in the LICENSE file.
|
||
|
|
||
|
import "github.com/emicklei/go-restful"
|
||
|
|
||
|
type orderedRouteMap struct {
|
||
|
elements map[string][]restful.Route
|
||
|
keys []string
|
||
|
}
|
||
|
|
||
|
func newOrderedRouteMap() *orderedRouteMap {
|
||
|
return &orderedRouteMap{
|
||
|
elements: map[string][]restful.Route{},
|
||
|
keys: []string{},
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (o *orderedRouteMap) Add(key string, route restful.Route) {
|
||
|
routes, ok := o.elements[key]
|
||
|
if ok {
|
||
|
routes = append(routes, route)
|
||
|
o.elements[key] = routes
|
||
|
return
|
||
|
}
|
||
|
o.elements[key] = []restful.Route{route}
|
||
|
o.keys = append(o.keys, key)
|
||
|
}
|
||
|
|
||
|
func (o *orderedRouteMap) Do(block func(key string, routes []restful.Route)) {
|
||
|
for _, k := range o.keys {
|
||
|
block(k, o.elements[k])
|
||
|
}
|
||
|
}
|