-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(), memory_store :: gleam@option:option(glimit@memory_store:memory_store()), now :: fun(() -> integer()) }).