55
requestPriorityFn RequestPriorityFn,
56
priorityToRateLimiters map[int]RequestRateLimiter,
58
>
priorities := make([]int, 0, len(priorityToRateLimiters))
59
>
for priority := range priorityToRateLimiters {
60
>
priorities = append(priorities, priority)
61
>
}
62
>
slices.Sort(priorities)
63
>
priorityToIndex := make(map[int]int, len(priorityToRateLimiters))
64
>
rateLimiters := make([]RequestRateLimiter, 0, len(priorityToRateLimiters))
65
>
for index, priority := range priorities {
66
>
priorityToIndex[priority] = index
67
>
rateLimiters = append(rateLimiters, priorityToRateLimiters[priority])
68
>
}
69
71
>
requestPriorityFn: requestPriorityFn,
72
>
priorityToRateLimiters: priorityToRateLimiters,
73
>
74
>
priorityToIndex: priorityToIndex,
75
>
rateLimiters: rateLimiters,
76
>
}
77
}
78