Throttex.Core (throttex v0.1.0)

Summary

Types

t()

@opaque t()

Functions

initial_state(rates)

@spec initial_state(rates :: [Throttex.Rate.t()]) :: t()

release(state, request_id, timestamp)

@spec release(t(), request_id :: term(), Throttex.Types.timestamp()) ::
  {:ok, t()} | :error

request(state, rate_id, timestamp)

@spec request(state :: t(), rate_id :: term(), Throttex.Types.timestamp()) ::
  {:ok, request_id :: term(), new_state :: t()}
  | {:error, :invalid_rate | :unavailable}