ordered_route_map.go 830 B

123456789101112131415161718192021222324252627282930313233343536
  1. package swagger
  2. // Copyright 2015 Ernest Micklei. All rights reserved.
  3. // Use of this source code is governed by a license
  4. // that can be found in the LICENSE file.
  5. import "github.com/emicklei/go-restful"
  6. type orderedRouteMap struct {
  7. elements map[string][]restful.Route
  8. keys []string
  9. }
  10. func newOrderedRouteMap() *orderedRouteMap {
  11. return &orderedRouteMap{
  12. elements: map[string][]restful.Route{},
  13. keys: []string{},
  14. }
  15. }
  16. func (o *orderedRouteMap) Add(key string, route restful.Route) {
  17. routes, ok := o.elements[key]
  18. if ok {
  19. routes = append(routes, route)
  20. o.elements[key] = routes
  21. return
  22. }
  23. o.elements[key] = []restful.Route{route}
  24. o.keys = append(o.keys, key)
  25. }
  26. func (o *orderedRouteMap) Do(block func(key string, routes []restful.Route)) {
  27. for _, k := range o.keys {
  28. block(k, o.elements[k])
  29. }
  30. }