in pkg/adapter/route.go [64:97]
func toVars(r *mem.Route) [][]*string {
result := make([][]*string, 0)
for _, m := range r.Match {
// args
matchArgs := m["args"]
switch reflect.TypeOf(matchArgs).Kind() {
case reflect.Slice:
s := reflect.ValueOf(matchArgs)
if slice, ok := s.Interface().([]map[string]map[string]string); ok {
for _, s := range slice {
tmp := make([]*string, 0)
for p, value := range s {
tmp = append(tmp, &p)
for k, v := range value {
switch k {
case "greater":
greater := ">"
tmp = append(tmp, &greater)
tmp = append(tmp, &v)
case "exact":
equals := "=="
tmp = append(tmp, &equals)
tmp = append(tmp, &v)
}
}
result = append(result, tmp)
}
}
}
}
}
return result
}