aboutsummaryrefslogtreecommitdiff
path: root/lib/rl.mli
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rl.mli')
-rw-r--r--lib/rl.mli18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/rl.mli b/lib/rl.mli
index f583653..973f02f 100644
--- a/lib/rl.mli
+++ b/lib/rl.mli
@@ -1,19 +1,37 @@
+(** Internal ratelimit route mapping. *)
+
open Core
open Async
+(** Type for mapping route -> {!rl}. *)
module RouteMap : module type of Map.Make(String)
+(** Type representing ratelimit information. *)
type rl = {
limit: int;
remaining: int;
reset: int;
}
+(** Type representing the specific case of {!RouteMap}. *)
type t = ((rl, read_write) Mvar.t) RouteMap.t
+(** Converts Cohttp header data into ratelimit information.
+ @return Some of ratelimit information or None on bad headers
+*)
val rl_of_header : Cohttp.Header.t -> rl option
+
+(** Default for type rl. Used for prepopulating routes. *)
val default : rl
+
+(** Empty ratelimit route map. *)
val empty : t
+
+(** Analogous to {!RouteMap.update}. *)
val update : 'a RouteMap.t -> string -> f:('a option -> 'a) -> 'a RouteMap.t
+
+(** Analogous to {!RouteMap.find}. *)
val find : 'a RouteMap.t -> string -> 'a option
+
+(** Analogous to {!RouteMap.find_exn}. *)
val find_exn : 'a RouteMap.t -> string -> 'a \ No newline at end of file