From 6354dbd89d354e5e2499b4c2bea5d5fa95e020df Mon Sep 17 00:00:00 2001 From: Adelyn Breedlove Date: Wed, 16 Jan 2019 23:36:59 -0700 Subject: eliminate all functors in favour of a simpler approach --- lib/sharder.mli | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 lib/sharder.mli (limited to 'lib/sharder.mli') diff --git a/lib/sharder.mli b/lib/sharder.mli new file mode 100644 index 0000000..554ed73 --- /dev/null +++ b/lib/sharder.mli @@ -0,0 +1,57 @@ +open Async + +exception Invalid_Payload +exception Failure_to_Establish_Heartbeat + +type t + +val start : + ?count:int -> + unit -> + t Deferred.t + +module Shard : sig + type shard + type 'a t = { + mutable state: 'a; + } + + val heartbeat : + shard -> + shard Deferred.t + + val set_status : + status:Yojson.Safe.json -> + shard -> + shard Deferred.t + + val request_guild_members : + ?query:string -> + ?limit:int -> + guild:Snowflake.t -> + shard -> + shard Deferred.t + + val create : + url:string -> + shards:int * int -> + unit -> + shard Deferred.t +end + +val set_status : + status:Yojson.Safe.json -> + t -> + Shard.shard list Deferred.t + +val set_status_with : + f:(Shard.shard -> Yojson.Safe.json) -> + t -> + Shard.shard list Deferred.t + +val request_guild_members : + ?query:string -> + ?limit:int -> + guild:Snowflake.t -> + t -> + Shard.shard list Deferred.t \ No newline at end of file -- cgit v1.2.3