-record(rate_limiter, { on_limit_exceeded :: fun((any()) -> any()), identifier :: fun((any()) -> any()), per_second :: fun((any()) -> integer()), burst_limit :: fun((any()) -> integer()), store :: glimit@bucket:store(), ets_store :: gleam@option:option(glimit@ets_store:ets_store()), now :: fun(() -> integer()) }).