compileRateLimitPolicies function

List<CompiledRateLimitPolicy> compileRateLimitPolicies({
  1. required Iterable<RateLimitPolicySpec> specs,
  2. required RateLimiterBackend backend,
  3. required RateLimitFailoverMode defaultFailover,
})

Compiles specs into immutable runtime policies.

The iterable is consumed once, and the returned list preserves its order. RateLimitService uses that order when it evaluates policies.

Implementation

List<CompiledRateLimitPolicy> compileRateLimitPolicies({
  required Iterable<RateLimitPolicySpec> specs,
  required RateLimiterBackend backend,
  required RateLimitFailoverMode defaultFailover,
}) {
  return specs
      .map(
        (spec) => compileRateLimitPolicy(
          spec: spec,
          backend: backend,
          defaultFailover: defaultFailover,
        ),
      )
      .toList(growable: false);
}