diff options
| author | Adelyn Breedlove <[email protected]> | 2019-01-16 23:36:59 -0700 |
|---|---|---|
| committer | Adelyn Breedlove <[email protected]> | 2019-01-16 23:36:59 -0700 |
| commit | 6354dbd89d354e5e2499b4c2bea5d5fa95e020df (patch) | |
| tree | a0fd199097bdc675628d5bd735017d92d2067e08 /lib/s.ml | |
| parent | Merge branch 'switch-to-deriving_yojson' into 'master' (diff) | |
| download | disml-6354dbd89d354e5e2499b4c2bea5d5fa95e020df.tar.xz disml-6354dbd89d354e5e2499b4c2bea5d5fa95e020df.zip | |
eliminate all functors in favour of a simpler approach
Diffstat (limited to 'lib/s.ml')
| -rw-r--r-- | lib/s.ml | 398 |
1 files changed, 0 insertions, 398 deletions
diff --git a/lib/s.ml b/lib/s.ml deleted file mode 100644 index 86446aa..0000000 --- a/lib/s.ml +++ /dev/null @@ -1,398 +0,0 @@ -open Async - -module type Token = sig - val token : string -end - -module type Message = sig - type t = Message_t.t - val add_reaction : t -> Emoji.t -> Yojson.Safe.json Deferred.Or_error.t - val remove_reaction : t -> Emoji.t -> User_t.t -> Yojson.Safe.json Deferred.Or_error.t - val clear_reactions : t -> Yojson.Safe.json Deferred.Or_error.t - val delete : t -> Yojson.Safe.json Deferred.Or_error.t - val pin : t -> Yojson.Safe.json Deferred.Or_error.t - val unpin : t -> Yojson.Safe.json Deferred.Or_error.t - val reply : t -> string -> Yojson.Safe.json Deferred.Or_error.t - val set_content : t -> string -> Yojson.Safe.json Deferred.Or_error.t - val set_embed : t -> Embed.t -> Yojson.Safe.json Deferred.Or_error.t -end - -module type Ban = sig - type t = Ban_t.t -end - -module type Channel = sig - type t = Channel_t.t - val say : content:string -> t -> Message_t.t Deferred.Or_error.t - val send_message : - ?embed:Yojson.Safe.json -> - ?content:string -> - ?file:string -> - ?tts:bool -> - t -> - Message_t.t Deferred.Or_error.t - val delete : t -> unit Deferred.Or_error.t - val get_message : id:Snowflake.t -> t -> Message_t.t Deferred.Or_error.t - val get_messages : - ?mode:[ `Before | `After | `Around ] -> - ?id:Snowflake.t -> - ?limit:int -> - t -> - Message_t.t list Deferred.Or_error.t - val broadcast_typing : t -> unit Deferred.Or_error.t - val get_pins : t -> Message_t.t list Deferred.Or_error.t - (* TODO more things related to guild channels *) -end - -module type Member = sig - type t = Member_t.t - (* val add_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.Or_error.t - val remove_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.Or_error.t - val ban : ?reason:string -> ?days:int -> Member_t.t -> Yojson.Safe.json Deferred.Or_error.t - val ban : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.Or_error.t - val kick : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.Or_error.t - val mute : Member_t.t -> Yojson.Safe.json Deferred.Or_error.t - val deafen : Member_t.t -> Yojson.Safe.json Deferred.Or_error.t - val unmute : Member_t.t -> Yojson.Safe.json Deferred.Or_error.t - val undeafen : Member_t.t -> Yojson.Safe.json Deferred.Or_error.t *) -end - -module type Reaction = sig - type t = Reaction_t.t - (* val delete : Reaction_t.t -> Yojson.Safe.json Deferred.Or_error.t - val get_users : Reaction_t.t -> int -> User_t.t list Deferred.Or_error.t - val get_users_after : Reaction_t.t -> Snowflake.t -> int -> User_t.t list Deferred.Or_error.t - val get_users_before : Reaction_t.t -> Snowflake.t -> int -> User_t.t list Deferred.Or_error.t *) -end - -module type Role = sig - type t = Role_t.t - val allow_mention : t -> Yojson.Safe.json Deferred.Or_error.t - val delete : t -> Yojson.Safe.json Deferred.Or_error.t - val disallow_mention : t -> Yojson.Safe.json Deferred.Or_error.t - val hoist : t -> Yojson.Safe.json Deferred.Or_error.t - val set_colour : colour:int -> t -> Yojson.Safe.json Deferred.Or_error.t - val set_name : name:string -> t -> Yojson.Safe.json Deferred.Or_error.t - val unhoist : t -> Yojson.Safe.json Deferred.Or_error.t -end - -module type User = sig - type t = User_t.t - val tag : t -> string - val mention : t -> string - val default_avatar : t -> string - val face : t -> string - (* val private_channel : t -> Channel_t.t *) - (* val send : t -> Yojson.Safe.json Deferred.Or_error.t *) -end - -module type Guild = sig - type t = Guild_t.t - val ban_user : id:Snowflake.t -> ?reason:string -> ?days:int -> t -> unit Deferred.Or_error.t - val create_emoji : name:string -> image:string -> t -> Emoji.t Deferred.Or_error.t - val create_role : - name:string -> - ?colour:int -> - ?permissions:int -> - ?hoist:bool -> - ?mentionable:bool -> - t -> - Role_t.t Deferred.Or_error.t - val create_channel : mode:[ `Text | `Voice | `Category ] -> name:string -> t -> Channel_t.t Deferred.Or_error.t - val delete : t -> unit Deferred.Or_error.t - val get_ban : id:Snowflake.t -> t -> Ban_t.t Deferred.Or_error.t - val get_bans : t -> Ban_t.t list Deferred.Or_error.t - val get_channel : id:Snowflake.t -> t -> Channel_t.t Deferred.Or_error.t - val get_emoji : id:Snowflake.t -> t -> Emoji.t Deferred.Or_error.t - val get_invites : t -> Yojson.Safe.json Deferred.Or_error.t - val get_member : id:Snowflake.t -> t -> Member_t.t Deferred.Or_error.t - val get_prune_count : days:int -> t -> int Deferred.Or_error.t - val get_role : id:Snowflake.t -> t -> Role_t.t option - val get_webhooks : t -> Yojson.Safe.json Deferred.Or_error.t - val kick_user : id:Snowflake.t -> ?reason:string -> t -> unit Deferred.Or_error.t - val leave : t -> Yojson.Safe.json Deferred.Or_error.t - val list_voice_regions : t -> Yojson.Safe.json Deferred.Or_error.t - val prune : days:int -> t -> int Deferred.Or_error.t - val request_members : t -> Member_t.t list Deferred.Or_error.t - val set_afk_channel : id:Snowflake.t -> t -> t Deferred.Or_error.t - val set_afk_timeout : timeout:int -> t -> t Deferred.Or_error.t - val set_name : name:string -> t -> t Deferred.Or_error.t - val set_icon : icon:string -> t -> t Deferred.Or_error.t - val unban_user : id:Snowflake.t -> ?reason:string -> t -> unit Deferred.Or_error.t -end - -module type Http = sig - val token : string - - module Base : sig - exception Invalid_Method - - val base_url : string - - val process_url : string -> Uri.t - val process_request_body : Yojson.Safe.json -> Cohttp_async.Body.t - val process_request_headers : unit -> Cohttp.Header.t - - val process_response : - string -> - Cohttp_async.Response.t * Cohttp_async.Body.t -> - Yojson.Safe.json Deferred.Or_error.t - - val request : - ?body:Yojson.Safe.json -> - [> `DELETE | `GET | `PATCH | `POST | `PUT ] -> - string -> - Yojson.Safe.json Deferred.Or_error.t - end - - (* Auto-generated signatures *) - val get_gateway : unit -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_gateway_bot : unit -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_channel : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val modify_channel : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_channel : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_messages : int -> int -> string * int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_message : int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val create_message : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val create_reaction : - int -> int -> string -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_own_reaction : - int -> int -> string -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_reaction : - int -> int -> string -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_reactions : - int -> int -> string -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_reactions : - int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val edit_message : - int -> - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_message : - int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val bulk_delete : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val edit_channel_permissions : - int -> - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_channel_invites : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val create_channel_invite : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_channel_permission : - int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val broadcast_typing : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_pinned_messages : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val pin_message : int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val unpin_message : int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val group_recipient_add : - int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val group_recipient_remove : - int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_emojis : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_emoji : int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val create_emoji : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val edit_emoji : - int -> - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_emoji : int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val create_guild : - Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_guild : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val edit_guild : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_guild : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_guild_channels : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val create_guild_channel : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val modify_guild_channel_positions : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_member : int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_members : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val add_member : - int -> - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val edit_member : - int -> - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val remove_member : - int -> - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val change_nickname : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val add_member_role : - int -> int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val remove_member_role : - int -> int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_bans : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_ban : int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val guild_ban_add : - int -> - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val guild_ban_remove : - int -> - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_roles : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val guild_role_add : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val guild_roles_edit : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val guild_role_edit : - int -> - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val guild_role_remove : - int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val guild_prune_count : - int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val guild_prune_start : - int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_guild_voice_regions : - int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_guild_invites : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_integrations : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val add_integration : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val edit_integration : - int -> - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_integration : - int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val sync_integration : - int -> int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_guild_embed : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val edit_guild_embed : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_vanity_url : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_invite : string -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_invite : string -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_current_user : unit -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val edit_current_user : - Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_guilds : unit -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val leave_guild : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_private_channels : - unit -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val create_dm : - Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val create_group_dm : - Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_connections : unit -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_user : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_voice_regions : unit -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val create_webhook : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_channel_webhooks : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_guild_webhooks : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_webhook : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_webhook_with_token : - int -> string -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val edit_webhook : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val edit_webhook_with_token : - int -> - string -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_webhook : int -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val delete_webhook_with_token : - int -> string -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val execute_webhook : - int -> - string -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val execute_slack_webhook : - int -> - string -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val execute_git_webhook : - int -> - string -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io - val get_audit_logs : - int -> Yojson.Safe.json -> Yojson.Safe.json Core.Or_error.t Conduit_async.io -end - -module type Models = sig - module Ban : Ban - module Channel : Channel - module Guild : Guild - module Member : Member - module Message : Message - module Reaction : Reaction - module Role : Role - module User : User -end - -module type Handler = sig - val handle_event : - Event.t -> - unit -end - -module type Handler_f = sig - module Make(Models : Models) : Handler -end - -module type Dispatch = sig - val dispatch : ev:string -> Yojson.Safe.json -> unit -end - -module type Sharder = sig - exception Invalid_Payload - exception Failureo_Establish_Heartbeat - - type t - - val start : - ?count:int -> - unit -> - t Deferred.t - - module Shard : sig - type shard - type 'a t = { - mutable state: 'a; - mutable binds: ('a -> unit) list; - } - - val bind : - f:('a -> unit) -> - 'a t -> - unit - - 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 -end |