aboutsummaryrefslogtreecommitdiff
path: root/lib/s.ml
diff options
context:
space:
mode:
authorAdelyn Breelove <[email protected]>2018-11-29 13:50:53 -0700
committerAdelyn Breelove <[email protected]>2018-11-29 13:50:53 -0700
commit18f4b7e8cada448f6fc15ee8ee18944dcb0b1676 (patch)
tree1f0e626eeaf8dd89cc779655b68f12b1b8d0971a /lib/s.ml
parentfunctors! (diff)
downloaddisml-18f4b7e8cada448f6fc15ee8ee18944dcb0b1676.tar.xz
disml-18f4b7e8cada448f6fc15ee8ee18944dcb0b1676.zip
Try to make it a more properly structured lib
Diffstat (limited to 'lib/s.ml')
-rw-r--r--lib/s.ml61
1 files changed, 60 insertions, 1 deletions
diff --git a/lib/s.ml b/lib/s.ml
index 92259a0..454d2e7 100644
--- a/lib/s.ml
+++ b/lib/s.ml
@@ -27,5 +27,64 @@ module type Http = sig
end
(* TODO add abstraction sigs *)
- val token : string
+end
+
+module type Sharder = sig
+ exception Invalid_Payload
+ exception Failure_to_Establish_Heartbeat
+
+ type t
+
+ val start :
+ ?count:int ->
+ string ->
+ t Deferred.t
+
+ val set_status :
+ status:Yojson.Basic.json ->
+ t ->
+ (Shard.shard Shard.t) list Deferred.t
+
+ val set_status_with :
+ f:(Shard.shard -> Yojson.Basic.json) ->
+ t ->
+ (Shard.shard Shard.t) list Deferred.t
+
+ val request_guild_members :
+ ?query:string ->
+ ?count:string ->
+ guild:Snowflake.t ->
+ t ->
+ (Shard.shard Shard.t) list Deferred.t
+
+ module Shard : sig
+ type shard
+ type 'a t
+
+ val bind :
+ f:('a -> unit) ->
+ 'a t ->
+ unit
+
+ val heartbeat :
+ shard ->
+ shard Deferred.t
+
+ val set_status :
+ status:Yojson.Basic.json ->
+ shard ->
+ shard Deferred.t
+
+ val request_guild_members :
+ ?query:string ->
+ ?limit:int ->
+ guild:Snowflake.t
+
+ val create :
+ url:string ->
+ shards:int * int ->
+ token:string ->
+ unit ->
+ t Deferred.t
+ end
end \ No newline at end of file