8c227e7f2b
Using plain structure initialization is both shorter _and_ more clearer. We get type safety for free.
21 lines
491 B
C
21 lines
491 B
C
/* SPDX-License-Identifier: LGPL-2.1+ */
|
|
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "time-util.h"
|
|
#include "util.h"
|
|
|
|
typedef struct RateLimit {
|
|
usec_t interval; /* Keep those two fields first so they can be initialized easily: */
|
|
unsigned burst; /* RateLimit rl = { INTERVAL, BURST }; */
|
|
unsigned num;
|
|
usec_t begin;
|
|
} RateLimit;
|
|
|
|
static inline void ratelimit_reset(RateLimit *rl) {
|
|
rl->num = rl->begin = 0;
|
|
}
|
|
|
|
bool ratelimit_below(RateLimit *r);
|