aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdelyn Breelove <[email protected]>2018-12-19 15:50:16 -0700
committerAdelyn Breelove <[email protected]>2018-12-19 15:50:16 -0700
commit66e1462b8dd3f2b89cf066f314eeb9070b05be69 (patch)
tree1f55452f959b7ea3f8c20e14fb8b3a58c89e8f37
parentAdd proper type parsing to Guild (diff)
downloaddisml-66e1462b8dd3f2b89cf066f314eeb9070b05be69.tar.xz
disml-66e1462b8dd3f2b89cf066f314eeb9070b05be69.zip
Fix member abstraction and helper methods
-rw-r--r--disml.install285
-rw-r--r--lib/dune39
-rw-r--r--lib/event.ml23
-rw-r--r--lib/member.atd12
-rw-r--r--lib/models/guild.ml4
-rw-r--r--lib/models/role.ml4
-rw-r--r--lib/role.atd2
7 files changed, 327 insertions, 42 deletions
diff --git a/disml.install b/disml.install
index f80895d..71598ec 100644
--- a/disml.install
+++ b/disml.install
@@ -1,4 +1,289 @@
lib: [
"_build/install/default/lib/disml/META" {"META"}
+ "_build/install/default/lib/disml/activity.ml" {"activity.ml"}
+ "_build/install/default/lib/disml/activity_j.ml" {"activity_j.ml"}
+ "_build/install/default/lib/disml/activity_j.mli" {"activity_j.mli"}
+ "_build/install/default/lib/disml/activity_t.ml" {"activity_t.ml"}
+ "_build/install/default/lib/disml/activity_t.mli" {"activity_t.mli"}
+ "_build/install/default/lib/disml/attachment.ml" {"attachment.ml"}
+ "_build/install/default/lib/disml/attachment_j.ml" {"attachment_j.ml"}
+ "_build/install/default/lib/disml/attachment_j.mli" {"attachment_j.mli"}
+ "_build/install/default/lib/disml/attachment_t.ml" {"attachment_t.ml"}
+ "_build/install/default/lib/disml/attachment_t.mli" {"attachment_t.mli"}
+ "_build/install/default/lib/disml/ban.ml" {"ban.ml"}
+ "_build/install/default/lib/disml/ban_j.ml" {"ban_j.ml"}
+ "_build/install/default/lib/disml/ban_j.mli" {"ban_j.mli"}
+ "_build/install/default/lib/disml/ban_t.ml" {"ban_t.ml"}
+ "_build/install/default/lib/disml/ban_t.mli" {"ban_t.mli"}
+ "_build/install/default/lib/disml/channel.ml" {"channel.ml"}
+ "_build/install/default/lib/disml/channel_j.ml" {"channel_j.ml"}
+ "_build/install/default/lib/disml/channel_j.mli" {"channel_j.mli"}
+ "_build/install/default/lib/disml/channel_t.ml" {"channel_t.ml"}
+ "_build/install/default/lib/disml/channel_t.mli" {"channel_t.mli"}
+ "_build/install/default/lib/disml/client.ml" {"client.ml"}
+ "_build/install/default/lib/disml/disml.a" {"disml.a"}
+ "_build/install/default/lib/disml/disml.cma" {"disml.cma"}
+ "_build/install/default/lib/disml/disml.cmi" {"disml.cmi"}
+ "_build/install/default/lib/disml/disml.cmt" {"disml.cmt"}
+ "_build/install/default/lib/disml/disml.cmx" {"disml.cmx"}
+ "_build/install/default/lib/disml/disml.cmxa" {"disml.cmxa"}
+ "_build/install/default/lib/disml/disml.cmxs" {"disml.cmxs"}
+ "_build/install/default/lib/disml/disml.dune" {"disml.dune"}
+ "_build/install/default/lib/disml/disml.ml" {"disml.ml"}
+ "_build/install/default/lib/disml/disml__Activity.cmi" {"disml__Activity.cmi"}
+ "_build/install/default/lib/disml/disml__Activity.cmt" {"disml__Activity.cmt"}
+ "_build/install/default/lib/disml/disml__Activity.cmx" {"disml__Activity.cmx"}
+ "_build/install/default/lib/disml/disml__Activity_j.cmi" {"disml__Activity_j.cmi"}
+ "_build/install/default/lib/disml/disml__Activity_j.cmt" {"disml__Activity_j.cmt"}
+ "_build/install/default/lib/disml/disml__Activity_j.cmti" {"disml__Activity_j.cmti"}
+ "_build/install/default/lib/disml/disml__Activity_j.cmx" {"disml__Activity_j.cmx"}
+ "_build/install/default/lib/disml/disml__Activity_t.cmi" {"disml__Activity_t.cmi"}
+ "_build/install/default/lib/disml/disml__Activity_t.cmt" {"disml__Activity_t.cmt"}
+ "_build/install/default/lib/disml/disml__Activity_t.cmti" {"disml__Activity_t.cmti"}
+ "_build/install/default/lib/disml/disml__Activity_t.cmx" {"disml__Activity_t.cmx"}
+ "_build/install/default/lib/disml/disml__Attachment.cmi" {"disml__Attachment.cmi"}
+ "_build/install/default/lib/disml/disml__Attachment.cmt" {"disml__Attachment.cmt"}
+ "_build/install/default/lib/disml/disml__Attachment.cmx" {"disml__Attachment.cmx"}
+ "_build/install/default/lib/disml/disml__Attachment_j.cmi" {"disml__Attachment_j.cmi"}
+ "_build/install/default/lib/disml/disml__Attachment_j.cmt" {"disml__Attachment_j.cmt"}
+ "_build/install/default/lib/disml/disml__Attachment_j.cmti" {"disml__Attachment_j.cmti"}
+ "_build/install/default/lib/disml/disml__Attachment_j.cmx" {"disml__Attachment_j.cmx"}
+ "_build/install/default/lib/disml/disml__Attachment_t.cmi" {"disml__Attachment_t.cmi"}
+ "_build/install/default/lib/disml/disml__Attachment_t.cmt" {"disml__Attachment_t.cmt"}
+ "_build/install/default/lib/disml/disml__Attachment_t.cmti" {"disml__Attachment_t.cmti"}
+ "_build/install/default/lib/disml/disml__Attachment_t.cmx" {"disml__Attachment_t.cmx"}
+ "_build/install/default/lib/disml/disml__Ban.cmi" {"disml__Ban.cmi"}
+ "_build/install/default/lib/disml/disml__Ban.cmt" {"disml__Ban.cmt"}
+ "_build/install/default/lib/disml/disml__Ban.cmx" {"disml__Ban.cmx"}
+ "_build/install/default/lib/disml/disml__Ban_j.cmi" {"disml__Ban_j.cmi"}
+ "_build/install/default/lib/disml/disml__Ban_j.cmt" {"disml__Ban_j.cmt"}
+ "_build/install/default/lib/disml/disml__Ban_j.cmti" {"disml__Ban_j.cmti"}
+ "_build/install/default/lib/disml/disml__Ban_j.cmx" {"disml__Ban_j.cmx"}
+ "_build/install/default/lib/disml/disml__Ban_t.cmi" {"disml__Ban_t.cmi"}
+ "_build/install/default/lib/disml/disml__Ban_t.cmt" {"disml__Ban_t.cmt"}
+ "_build/install/default/lib/disml/disml__Ban_t.cmti" {"disml__Ban_t.cmti"}
+ "_build/install/default/lib/disml/disml__Ban_t.cmx" {"disml__Ban_t.cmx"}
+ "_build/install/default/lib/disml/disml__Channel.cmi" {"disml__Channel.cmi"}
+ "_build/install/default/lib/disml/disml__Channel.cmt" {"disml__Channel.cmt"}
+ "_build/install/default/lib/disml/disml__Channel.cmx" {"disml__Channel.cmx"}
+ "_build/install/default/lib/disml/disml__Channel_j.cmi" {"disml__Channel_j.cmi"}
+ "_build/install/default/lib/disml/disml__Channel_j.cmt" {"disml__Channel_j.cmt"}
+ "_build/install/default/lib/disml/disml__Channel_j.cmti" {"disml__Channel_j.cmti"}
+ "_build/install/default/lib/disml/disml__Channel_j.cmx" {"disml__Channel_j.cmx"}
+ "_build/install/default/lib/disml/disml__Channel_t.cmi" {"disml__Channel_t.cmi"}
+ "_build/install/default/lib/disml/disml__Channel_t.cmt" {"disml__Channel_t.cmt"}
+ "_build/install/default/lib/disml/disml__Channel_t.cmti" {"disml__Channel_t.cmti"}
+ "_build/install/default/lib/disml/disml__Channel_t.cmx" {"disml__Channel_t.cmx"}
+ "_build/install/default/lib/disml/disml__Client.cmi" {"disml__Client.cmi"}
+ "_build/install/default/lib/disml/disml__Client.cmt" {"disml__Client.cmt"}
+ "_build/install/default/lib/disml/disml__Client.cmx" {"disml__Client.cmx"}
+ "_build/install/default/lib/disml/disml__Dispatch.cmi" {"disml__Dispatch.cmi"}
+ "_build/install/default/lib/disml/disml__Dispatch.cmt" {"disml__Dispatch.cmt"}
+ "_build/install/default/lib/disml/disml__Dispatch.cmti" {"disml__Dispatch.cmti"}
+ "_build/install/default/lib/disml/disml__Dispatch.cmx" {"disml__Dispatch.cmx"}
+ "_build/install/default/lib/disml/disml__Embed.cmi" {"disml__Embed.cmi"}
+ "_build/install/default/lib/disml/disml__Embed.cmt" {"disml__Embed.cmt"}
+ "_build/install/default/lib/disml/disml__Embed.cmx" {"disml__Embed.cmx"}
+ "_build/install/default/lib/disml/disml__Embed_j.cmi" {"disml__Embed_j.cmi"}
+ "_build/install/default/lib/disml/disml__Embed_j.cmt" {"disml__Embed_j.cmt"}
+ "_build/install/default/lib/disml/disml__Embed_j.cmti" {"disml__Embed_j.cmti"}
+ "_build/install/default/lib/disml/disml__Embed_j.cmx" {"disml__Embed_j.cmx"}
+ "_build/install/default/lib/disml/disml__Embed_t.cmi" {"disml__Embed_t.cmi"}
+ "_build/install/default/lib/disml/disml__Embed_t.cmt" {"disml__Embed_t.cmt"}
+ "_build/install/default/lib/disml/disml__Embed_t.cmti" {"disml__Embed_t.cmti"}
+ "_build/install/default/lib/disml/disml__Embed_t.cmx" {"disml__Embed_t.cmx"}
+ "_build/install/default/lib/disml/disml__Emoji.cmi" {"disml__Emoji.cmi"}
+ "_build/install/default/lib/disml/disml__Emoji.cmt" {"disml__Emoji.cmt"}
+ "_build/install/default/lib/disml/disml__Emoji.cmx" {"disml__Emoji.cmx"}
+ "_build/install/default/lib/disml/disml__Emoji_j.cmi" {"disml__Emoji_j.cmi"}
+ "_build/install/default/lib/disml/disml__Emoji_j.cmt" {"disml__Emoji_j.cmt"}
+ "_build/install/default/lib/disml/disml__Emoji_j.cmti" {"disml__Emoji_j.cmti"}
+ "_build/install/default/lib/disml/disml__Emoji_j.cmx" {"disml__Emoji_j.cmx"}
+ "_build/install/default/lib/disml/disml__Emoji_t.cmi" {"disml__Emoji_t.cmi"}
+ "_build/install/default/lib/disml/disml__Emoji_t.cmt" {"disml__Emoji_t.cmt"}
+ "_build/install/default/lib/disml/disml__Emoji_t.cmti" {"disml__Emoji_t.cmti"}
+ "_build/install/default/lib/disml/disml__Emoji_t.cmx" {"disml__Emoji_t.cmx"}
+ "_build/install/default/lib/disml/disml__Endpoints.cmi" {"disml__Endpoints.cmi"}
+ "_build/install/default/lib/disml/disml__Endpoints.cmt" {"disml__Endpoints.cmt"}
+ "_build/install/default/lib/disml/disml__Endpoints.cmx" {"disml__Endpoints.cmx"}
+ "_build/install/default/lib/disml/disml__Event.cmi" {"disml__Event.cmi"}
+ "_build/install/default/lib/disml/disml__Event.cmt" {"disml__Event.cmt"}
+ "_build/install/default/lib/disml/disml__Event.cmx" {"disml__Event.cmx"}
+ "_build/install/default/lib/disml/disml__Guild.cmi" {"disml__Guild.cmi"}
+ "_build/install/default/lib/disml/disml__Guild.cmt" {"disml__Guild.cmt"}
+ "_build/install/default/lib/disml/disml__Guild.cmx" {"disml__Guild.cmx"}
+ "_build/install/default/lib/disml/disml__Guild_j.cmi" {"disml__Guild_j.cmi"}
+ "_build/install/default/lib/disml/disml__Guild_j.cmt" {"disml__Guild_j.cmt"}
+ "_build/install/default/lib/disml/disml__Guild_j.cmti" {"disml__Guild_j.cmti"}
+ "_build/install/default/lib/disml/disml__Guild_j.cmx" {"disml__Guild_j.cmx"}
+ "_build/install/default/lib/disml/disml__Guild_t.cmi" {"disml__Guild_t.cmi"}
+ "_build/install/default/lib/disml/disml__Guild_t.cmt" {"disml__Guild_t.cmt"}
+ "_build/install/default/lib/disml/disml__Guild_t.cmti" {"disml__Guild_t.cmti"}
+ "_build/install/default/lib/disml/disml__Guild_t.cmx" {"disml__Guild_t.cmx"}
+ "_build/install/default/lib/disml/disml__Http.cmi" {"disml__Http.cmi"}
+ "_build/install/default/lib/disml/disml__Http.cmt" {"disml__Http.cmt"}
+ "_build/install/default/lib/disml/disml__Http.cmti" {"disml__Http.cmti"}
+ "_build/install/default/lib/disml/disml__Http.cmx" {"disml__Http.cmx"}
+ "_build/install/default/lib/disml/disml__Member.cmi" {"disml__Member.cmi"}
+ "_build/install/default/lib/disml/disml__Member.cmt" {"disml__Member.cmt"}
+ "_build/install/default/lib/disml/disml__Member.cmx" {"disml__Member.cmx"}
+ "_build/install/default/lib/disml/disml__Member_j.cmi" {"disml__Member_j.cmi"}
+ "_build/install/default/lib/disml/disml__Member_j.cmt" {"disml__Member_j.cmt"}
+ "_build/install/default/lib/disml/disml__Member_j.cmti" {"disml__Member_j.cmti"}
+ "_build/install/default/lib/disml/disml__Member_j.cmx" {"disml__Member_j.cmx"}
+ "_build/install/default/lib/disml/disml__Member_t.cmi" {"disml__Member_t.cmi"}
+ "_build/install/default/lib/disml/disml__Member_t.cmt" {"disml__Member_t.cmt"}
+ "_build/install/default/lib/disml/disml__Member_t.cmti" {"disml__Member_t.cmti"}
+ "_build/install/default/lib/disml/disml__Member_t.cmx" {"disml__Member_t.cmx"}
+ "_build/install/default/lib/disml/disml__Message.cmi" {"disml__Message.cmi"}
+ "_build/install/default/lib/disml/disml__Message.cmt" {"disml__Message.cmt"}
+ "_build/install/default/lib/disml/disml__Message.cmx" {"disml__Message.cmx"}
+ "_build/install/default/lib/disml/disml__Message_j.cmi" {"disml__Message_j.cmi"}
+ "_build/install/default/lib/disml/disml__Message_j.cmt" {"disml__Message_j.cmt"}
+ "_build/install/default/lib/disml/disml__Message_j.cmti" {"disml__Message_j.cmti"}
+ "_build/install/default/lib/disml/disml__Message_j.cmx" {"disml__Message_j.cmx"}
+ "_build/install/default/lib/disml/disml__Message_t.cmi" {"disml__Message_t.cmi"}
+ "_build/install/default/lib/disml/disml__Message_t.cmt" {"disml__Message_t.cmt"}
+ "_build/install/default/lib/disml/disml__Message_t.cmti" {"disml__Message_t.cmti"}
+ "_build/install/default/lib/disml/disml__Message_t.cmx" {"disml__Message_t.cmx"}
+ "_build/install/default/lib/disml/disml__Models.cmi" {"disml__Models.cmi"}
+ "_build/install/default/lib/disml/disml__Models.cmt" {"disml__Models.cmt"}
+ "_build/install/default/lib/disml/disml__Models.cmti" {"disml__Models.cmti"}
+ "_build/install/default/lib/disml/disml__Models.cmx" {"disml__Models.cmx"}
+ "_build/install/default/lib/disml/disml__Opcode.cmi" {"disml__Opcode.cmi"}
+ "_build/install/default/lib/disml/disml__Opcode.cmt" {"disml__Opcode.cmt"}
+ "_build/install/default/lib/disml/disml__Opcode.cmx" {"disml__Opcode.cmx"}
+ "_build/install/default/lib/disml/disml__Presence.cmi" {"disml__Presence.cmi"}
+ "_build/install/default/lib/disml/disml__Presence.cmt" {"disml__Presence.cmt"}
+ "_build/install/default/lib/disml/disml__Presence.cmx" {"disml__Presence.cmx"}
+ "_build/install/default/lib/disml/disml__Presence_j.cmi" {"disml__Presence_j.cmi"}
+ "_build/install/default/lib/disml/disml__Presence_j.cmt" {"disml__Presence_j.cmt"}
+ "_build/install/default/lib/disml/disml__Presence_j.cmti" {"disml__Presence_j.cmti"}
+ "_build/install/default/lib/disml/disml__Presence_j.cmx" {"disml__Presence_j.cmx"}
+ "_build/install/default/lib/disml/disml__Presence_t.cmi" {"disml__Presence_t.cmi"}
+ "_build/install/default/lib/disml/disml__Presence_t.cmt" {"disml__Presence_t.cmt"}
+ "_build/install/default/lib/disml/disml__Presence_t.cmti" {"disml__Presence_t.cmti"}
+ "_build/install/default/lib/disml/disml__Presence_t.cmx" {"disml__Presence_t.cmx"}
+ "_build/install/default/lib/disml/disml__Reaction.cmi" {"disml__Reaction.cmi"}
+ "_build/install/default/lib/disml/disml__Reaction.cmt" {"disml__Reaction.cmt"}
+ "_build/install/default/lib/disml/disml__Reaction.cmx" {"disml__Reaction.cmx"}
+ "_build/install/default/lib/disml/disml__Reaction_j.cmi" {"disml__Reaction_j.cmi"}
+ "_build/install/default/lib/disml/disml__Reaction_j.cmt" {"disml__Reaction_j.cmt"}
+ "_build/install/default/lib/disml/disml__Reaction_j.cmti" {"disml__Reaction_j.cmti"}
+ "_build/install/default/lib/disml/disml__Reaction_j.cmx" {"disml__Reaction_j.cmx"}
+ "_build/install/default/lib/disml/disml__Reaction_t.cmi" {"disml__Reaction_t.cmi"}
+ "_build/install/default/lib/disml/disml__Reaction_t.cmt" {"disml__Reaction_t.cmt"}
+ "_build/install/default/lib/disml/disml__Reaction_t.cmti" {"disml__Reaction_t.cmti"}
+ "_build/install/default/lib/disml/disml__Reaction_t.cmx" {"disml__Reaction_t.cmx"}
+ "_build/install/default/lib/disml/disml__Rl.cmi" {"disml__Rl.cmi"}
+ "_build/install/default/lib/disml/disml__Rl.cmt" {"disml__Rl.cmt"}
+ "_build/install/default/lib/disml/disml__Rl.cmx" {"disml__Rl.cmx"}
+ "_build/install/default/lib/disml/disml__Role.cmi" {"disml__Role.cmi"}
+ "_build/install/default/lib/disml/disml__Role.cmt" {"disml__Role.cmt"}
+ "_build/install/default/lib/disml/disml__Role.cmx" {"disml__Role.cmx"}
+ "_build/install/default/lib/disml/disml__Role_j.cmi" {"disml__Role_j.cmi"}
+ "_build/install/default/lib/disml/disml__Role_j.cmt" {"disml__Role_j.cmt"}
+ "_build/install/default/lib/disml/disml__Role_j.cmti" {"disml__Role_j.cmti"}
+ "_build/install/default/lib/disml/disml__Role_j.cmx" {"disml__Role_j.cmx"}
+ "_build/install/default/lib/disml/disml__Role_t.cmi" {"disml__Role_t.cmi"}
+ "_build/install/default/lib/disml/disml__Role_t.cmt" {"disml__Role_t.cmt"}
+ "_build/install/default/lib/disml/disml__Role_t.cmti" {"disml__Role_t.cmti"}
+ "_build/install/default/lib/disml/disml__Role_t.cmx" {"disml__Role_t.cmx"}
+ "_build/install/default/lib/disml/disml__S.cmi" {"disml__S.cmi"}
+ "_build/install/default/lib/disml/disml__S.cmt" {"disml__S.cmt"}
+ "_build/install/default/lib/disml/disml__S.cmx" {"disml__S.cmx"}
+ "_build/install/default/lib/disml/disml__Sharder.cmi" {"disml__Sharder.cmi"}
+ "_build/install/default/lib/disml/disml__Sharder.cmt" {"disml__Sharder.cmt"}
+ "_build/install/default/lib/disml/disml__Sharder.cmti" {"disml__Sharder.cmti"}
+ "_build/install/default/lib/disml/disml__Sharder.cmx" {"disml__Sharder.cmx"}
+ "_build/install/default/lib/disml/disml__Snowflake.cmi" {"disml__Snowflake.cmi"}
+ "_build/install/default/lib/disml/disml__Snowflake.cmt" {"disml__Snowflake.cmt"}
+ "_build/install/default/lib/disml/disml__Snowflake.cmx" {"disml__Snowflake.cmx"}
+ "_build/install/default/lib/disml/disml__Snowflake_j.cmi" {"disml__Snowflake_j.cmi"}
+ "_build/install/default/lib/disml/disml__Snowflake_j.cmt" {"disml__Snowflake_j.cmt"}
+ "_build/install/default/lib/disml/disml__Snowflake_j.cmti" {"disml__Snowflake_j.cmti"}
+ "_build/install/default/lib/disml/disml__Snowflake_j.cmx" {"disml__Snowflake_j.cmx"}
+ "_build/install/default/lib/disml/disml__Snowflake_t.cmi" {"disml__Snowflake_t.cmi"}
+ "_build/install/default/lib/disml/disml__Snowflake_t.cmt" {"disml__Snowflake_t.cmt"}
+ "_build/install/default/lib/disml/disml__Snowflake_t.cmti" {"disml__Snowflake_t.cmti"}
+ "_build/install/default/lib/disml/disml__Snowflake_t.cmx" {"disml__Snowflake_t.cmx"}
+ "_build/install/default/lib/disml/disml__User.cmi" {"disml__User.cmi"}
+ "_build/install/default/lib/disml/disml__User.cmt" {"disml__User.cmt"}
+ "_build/install/default/lib/disml/disml__User.cmx" {"disml__User.cmx"}
+ "_build/install/default/lib/disml/disml__User_j.cmi" {"disml__User_j.cmi"}
+ "_build/install/default/lib/disml/disml__User_j.cmt" {"disml__User_j.cmt"}
+ "_build/install/default/lib/disml/disml__User_j.cmti" {"disml__User_j.cmti"}
+ "_build/install/default/lib/disml/disml__User_j.cmx" {"disml__User_j.cmx"}
+ "_build/install/default/lib/disml/disml__User_t.cmi" {"disml__User_t.cmi"}
+ "_build/install/default/lib/disml/disml__User_t.cmt" {"disml__User_t.cmt"}
+ "_build/install/default/lib/disml/disml__User_t.cmti" {"disml__User_t.cmti"}
+ "_build/install/default/lib/disml/disml__User_t.cmx" {"disml__User_t.cmx"}
+ "_build/install/default/lib/disml/dispatch.ml" {"dispatch.ml"}
+ "_build/install/default/lib/disml/dispatch.mli" {"dispatch.mli"}
+ "_build/install/default/lib/disml/embed.ml" {"embed.ml"}
+ "_build/install/default/lib/disml/embed_j.ml" {"embed_j.ml"}
+ "_build/install/default/lib/disml/embed_j.mli" {"embed_j.mli"}
+ "_build/install/default/lib/disml/embed_t.ml" {"embed_t.ml"}
+ "_build/install/default/lib/disml/embed_t.mli" {"embed_t.mli"}
+ "_build/install/default/lib/disml/emoji.ml" {"emoji.ml"}
+ "_build/install/default/lib/disml/emoji_j.ml" {"emoji_j.ml"}
+ "_build/install/default/lib/disml/emoji_j.mli" {"emoji_j.mli"}
+ "_build/install/default/lib/disml/emoji_t.ml" {"emoji_t.ml"}
+ "_build/install/default/lib/disml/emoji_t.mli" {"emoji_t.mli"}
+ "_build/install/default/lib/disml/endpoints.ml" {"endpoints.ml"}
+ "_build/install/default/lib/disml/event.ml" {"event.ml"}
+ "_build/install/default/lib/disml/guild.ml" {"guild.ml"}
+ "_build/install/default/lib/disml/guild_j.ml" {"guild_j.ml"}
+ "_build/install/default/lib/disml/guild_j.mli" {"guild_j.mli"}
+ "_build/install/default/lib/disml/guild_t.ml" {"guild_t.ml"}
+ "_build/install/default/lib/disml/guild_t.mli" {"guild_t.mli"}
+ "_build/install/default/lib/disml/http.ml" {"http.ml"}
+ "_build/install/default/lib/disml/http.mli" {"http.mli"}
+ "_build/install/default/lib/disml/member.ml" {"member.ml"}
+ "_build/install/default/lib/disml/member_j.ml" {"member_j.ml"}
+ "_build/install/default/lib/disml/member_j.mli" {"member_j.mli"}
+ "_build/install/default/lib/disml/member_t.ml" {"member_t.ml"}
+ "_build/install/default/lib/disml/member_t.mli" {"member_t.mli"}
+ "_build/install/default/lib/disml/message.ml" {"message.ml"}
+ "_build/install/default/lib/disml/message_j.ml" {"message_j.ml"}
+ "_build/install/default/lib/disml/message_j.mli" {"message_j.mli"}
+ "_build/install/default/lib/disml/message_t.ml" {"message_t.ml"}
+ "_build/install/default/lib/disml/message_t.mli" {"message_t.mli"}
+ "_build/install/default/lib/disml/models.ml" {"models.ml"}
+ "_build/install/default/lib/disml/models.mli" {"models.mli"}
"_build/install/default/lib/disml/opam" {"opam"}
+ "_build/install/default/lib/disml/opcode.ml" {"opcode.ml"}
+ "_build/install/default/lib/disml/presence.ml" {"presence.ml"}
+ "_build/install/default/lib/disml/presence_j.ml" {"presence_j.ml"}
+ "_build/install/default/lib/disml/presence_j.mli" {"presence_j.mli"}
+ "_build/install/default/lib/disml/presence_t.ml" {"presence_t.ml"}
+ "_build/install/default/lib/disml/presence_t.mli" {"presence_t.mli"}
+ "_build/install/default/lib/disml/reaction.ml" {"reaction.ml"}
+ "_build/install/default/lib/disml/reaction_j.ml" {"reaction_j.ml"}
+ "_build/install/default/lib/disml/reaction_j.mli" {"reaction_j.mli"}
+ "_build/install/default/lib/disml/reaction_t.ml" {"reaction_t.ml"}
+ "_build/install/default/lib/disml/reaction_t.mli" {"reaction_t.mli"}
+ "_build/install/default/lib/disml/rl.ml" {"rl.ml"}
+ "_build/install/default/lib/disml/role.ml" {"role.ml"}
+ "_build/install/default/lib/disml/role_j.ml" {"role_j.ml"}
+ "_build/install/default/lib/disml/role_j.mli" {"role_j.mli"}
+ "_build/install/default/lib/disml/role_t.ml" {"role_t.ml"}
+ "_build/install/default/lib/disml/role_t.mli" {"role_t.mli"}
+ "_build/install/default/lib/disml/s.ml" {"s.ml"}
+ "_build/install/default/lib/disml/sharder.ml" {"sharder.ml"}
+ "_build/install/default/lib/disml/sharder.mli" {"sharder.mli"}
+ "_build/install/default/lib/disml/snowflake.ml" {"snowflake.ml"}
+ "_build/install/default/lib/disml/snowflake_j.ml" {"snowflake_j.ml"}
+ "_build/install/default/lib/disml/snowflake_j.mli" {"snowflake_j.mli"}
+ "_build/install/default/lib/disml/snowflake_t.ml" {"snowflake_t.ml"}
+ "_build/install/default/lib/disml/snowflake_t.mli" {"snowflake_t.mli"}
+ "_build/install/default/lib/disml/user.ml" {"user.ml"}
+ "_build/install/default/lib/disml/user_j.ml" {"user_j.ml"}
+ "_build/install/default/lib/disml/user_j.mli" {"user_j.mli"}
+ "_build/install/default/lib/disml/user_t.ml" {"user_t.ml"}
+ "_build/install/default/lib/disml/user_t.mli" {"user_t.mli"}
+]
+doc: [
+ "_build/install/default/doc/disml/LICENSE"
+ "_build/install/default/doc/disml/README.md"
]
diff --git a/lib/dune b/lib/dune
index 4ce6b27..667d021 100644
--- a/lib/dune
+++ b/lib/dune
@@ -116,30 +116,21 @@
(public_name disml)
(synopsis "An OCaml library for interfacing with the Discord API")
(modules
- activity activity_t activity_j
- attachment attachment_t attachment_j
- ban ban_t ban_j
- channel channel_t channel_j
- embed embed_t embed_j
- emoji emoji_t emoji_j
- guild guild_t guild_j
- member member_t member_j
- message message_t message_j
- presence presence_t presence_j
- reaction reaction_t reaction_j
- role role_t role_j
- snowflake snowflake_t snowflake_j
- user user_t user_j
- client
- dispatch
- endpoints
- event
- http
- models
- opcode
- rl
- s
- sharder
+ activity_t activity_j
+ attachment_t attachment_j
+ ban_t ban_j
+ channel_t channel_j
+ embed_t embed_j
+ emoji_t emoji_j
+ guild_t guild_j
+ member_t member_j
+ message_t message_j
+ presence_t presence_j
+ reaction_t reaction_j
+ role_t role_j
+ snowflake_t snowflake_j
+ user_t user_j
+ activity attachment ban channel embed emoji guild member message presence reaction role snowflake user client dispatch endpoints event http models opcode rl s sharder
)
(libraries core async_ssl cohttp-async yojson websocket-async zlib atdgen)
(preprocess (pps ppx_jane))
diff --git a/lib/event.ml b/lib/event.ml
index 988e017..6796ef5 100644
--- a/lib/event.ml
+++ b/lib/event.ml
@@ -39,16 +39,15 @@ type t =
exception Invalid_event of string
-let wrap_role_update Role_t.{ id; role; } =
+let wrap_role ~guild_id role =
let open Role_t in
- let guild_id = id in
let {id;name;colour;hoist;position;permissions;managed;mentionable} = role in
{id;name;colour;hoist;position;permissions;managed;mentionable;guild_id}
-let wrap_role_with_id ~guild_id role =
- let open Role_t in
- let {id;name;colour;hoist;position;permissions;managed;mentionable} = role in
- {id;name;colour;hoist;position;permissions;managed;mentionable;guild_id}
+let wrap_member ~guild_id member =
+ let open Member_t in
+ let {nick;roles;joined_at;deaf;mute;user} = member in
+ {nick;roles;joined_at;deaf;mute;user;guild_id}
let event_of_string ~contents t = match t with
| "HELLO" -> HELLO (Yojson.Safe.from_string contents)
@@ -66,13 +65,13 @@ let event_of_string ~contents t = match t with
| "GUILD_BAN_REMOVE" -> GUILD_BAN_REMOVE (Ban_j.t_of_string contents)
| "GUILD_EMOJIS_UPDATE" -> GUILD_EMOJIS_UPDATE (Yojson.Safe.from_string contents)
| "GUILD_INTEGRATIONS_UPDATE" -> GUILD_INTEGRATIONS_UPDATE (Yojson.Safe.from_string contents)
- | "GUILD_MEMBER_ADD" -> GUILD_MEMBER_ADD (Member_j.t_of_string contents)
- | "GUILD_MEMBER_REMOVE" -> GUILD_MEMBER_REMOVE (Member_j.t_of_string contents)
- | "GUILD_MEMBER_UPDATE" -> GUILD_MEMBER_UPDATE (Member_j.t_of_string contents)
+ | "GUILD_MEMBER_ADD" -> GUILD_MEMBER_ADD (let Member_t.{guild_id;member} = Member_j.member_update_of_string contents in wrap_member ~guild_id member)
+ | "GUILD_MEMBER_REMOVE" -> GUILD_MEMBER_REMOVE (let Member_t.{guild_id;member} = Member_j.member_update_of_string contents in wrap_member ~guild_id member)
+ | "GUILD_MEMBER_UPDATE" -> GUILD_MEMBER_UPDATE (let Member_t.{guild_id;member} = Member_j.member_update_of_string contents in wrap_member ~guild_id member)
| "GUILD_MEMBERS_CHUNK" -> GUILD_MEMBERS_CHUNK (Yojson.Safe.(from_string contents |> Util.to_list) |> List.map ~f:(fun m -> Yojson.Safe.to_string m |> Member_j.t_of_string))
- | "GUILD_ROLE_CREATE" -> GUILD_ROLE_CREATE (Role_j.role_update_of_string contents |> wrap_role_update)
- | "GUILD_ROLE_UPDATE" -> GUILD_ROLE_UPDATE (Role_j.role_update_of_string contents |> wrap_role_update)
- | "GUILD_ROLE_DELETE" -> GUILD_ROLE_DELETE (Role_j.role_update_of_string contents |> wrap_role_update)
+ | "GUILD_ROLE_CREATE" -> GUILD_ROLE_CREATE (let Role_t.{guild_id;role} = Role_j.role_update_of_string contents in wrap_role ~guild_id role)
+ | "GUILD_ROLE_UPDATE" -> GUILD_ROLE_UPDATE (let Role_t.{guild_id;role} = Role_j.role_update_of_string contents in wrap_role ~guild_id role)
+ | "GUILD_ROLE_DELETE" -> GUILD_ROLE_DELETE (let Role_t.{guild_id;role} = Role_j.role_update_of_string contents in wrap_role ~guild_id role)
| "MESSAGE_CREATE" -> MESSAGE_CREATE (Message_j.t_of_string contents)
| "MESSAGE_UPDATE" -> MESSAGE_UPDATE (Message_j.t_of_string contents)
| "MESSAGE_DELETE" -> MESSAGE_DELETE (Message_j.t_of_string contents)
diff --git a/lib/member.atd b/lib/member.atd
index 11d8b62..c87e40c 100644
--- a/lib/member.atd
+++ b/lib/member.atd
@@ -9,7 +9,17 @@ type partial_member = {
mute: bool;
}
-type t = {
+type member = {
inherit partial_member;
user: user;
+}
+
+type member_update = {
+ guild_id <json name="id">: snowflake;
+ member: member;
+}
+
+type t = {
+ inherit member;
+ guild_id: snowflake;
} \ No newline at end of file
diff --git a/lib/models/guild.ml b/lib/models/guild.ml
index 1e870f9..a10cd6c 100644
--- a/lib/models/guild.ml
+++ b/lib/models/guild.ml
@@ -35,7 +35,7 @@ module Make(Http : S.Http) = struct
in Http.guild_role_add guild.id (`Assoc payload)
>>| Result.map ~f:(fun r ->
Role_j.role_of_string r
- |> Event.wrap_role_with_id ~guild_id:guild.id)
+ |> Event.wrap_role ~guild_id:guild.id)
let create_channel ~mode ~name guild =
let kind = match mode with
@@ -87,7 +87,7 @@ module Make(Http : S.Http) = struct
(* TODO add HTTP fallback *)
let get_role ~id guild =
let role = List.find ~f:(fun r -> r.id = id) guild.roles in
- Option.(role >>| Event.wrap_role_with_id ~guild_id:guild.id)
+ Option.(role >>| Event.wrap_role ~guild_id:guild.id)
(* TODO add webhook abstraction? *)
let get_webhooks guild =
diff --git a/lib/models/role.ml b/lib/models/role.ml
index 5a3701c..aa931d6 100644
--- a/lib/models/role.ml
+++ b/lib/models/role.ml
@@ -3,12 +3,12 @@ module Make(Http : S.Http) = struct
type t = Role_t.t
- let edit_role ~body role = Http.guild_role_edit role.guild_id role.id body
+ let edit_role ~body (role:t) = Http.guild_role_edit role.guild_id role.id body
let allow_mention role =
edit_role ~body:(`Assoc [("mentionable", `Bool true)]) role
- let delete role = Http.guild_role_remove role.guild_id role.id
+ let delete (role:t) = Http.guild_role_remove role.guild_id role.id
let disallow_mention role =
edit_role ~body:(`Assoc [("mentionable", `Bool false)]) role
diff --git a/lib/role.atd b/lib/role.atd
index 5b4431e..d442a92 100644
--- a/lib/role.atd
+++ b/lib/role.atd
@@ -13,7 +13,7 @@ type role = {
type role_update = {
role: role;
- id <json name="guild_id">: snowflake;
+ guild_id: snowflake;
}
type t = {