aboutsummaryrefslogtreecommitdiff
path: root/lib/sharder.mli
diff options
context:
space:
mode:
authorAdelyn Breedlove <[email protected]>2019-01-16 23:36:59 -0700
committerAdelyn Breedlove <[email protected]>2019-01-16 23:36:59 -0700
commit6354dbd89d354e5e2499b4c2bea5d5fa95e020df (patch)
treea0fd199097bdc675628d5bd735017d92d2067e08 /lib/sharder.mli
parentMerge branch 'switch-to-deriving_yojson' into 'master' (diff)
downloaddisml-6354dbd89d354e5e2499b4c2bea5d5fa95e020df.tar.xz
disml-6354dbd89d354e5e2499b4c2bea5d5fa95e020df.zip
eliminate all functors in favour of a simpler approach
Diffstat (limited to 'lib/sharder.mli')
-rw-r--r--lib/sharder.mli57
1 files changed, 57 insertions, 0 deletions
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