From ef93c7448f6c74ec20bd7846cb324b836bb2e222 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Mon, 21 Jan 2019 12:14:58 -0700 Subject: More signature improvements --- lib/rl.mli | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'lib/rl.mli') 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 -- cgit v1.2.3