Module Core_kernel__.Limiter.Token_bucket

Implements a basic token bucket based rate limiter. Users of the throttle must successfully call try_take before doing work.

type t = private limiter
val create_exn : now:Core_kernel.Time_ns.t ‑> burst_size:Core_kernel__.Import.int ‑> sustained_rate_per_sec:Core_kernel__.Import.float ‑> ?initial_bucket_level:Core_kernel__.Import.int ‑> Core_kernel__.Import.unit ‑> t
val try_take : t ‑> now:Core_kernel.Time_ns.t ‑> Core_kernel__.Import.int ‑> Try_take_result.t