diff options
| author | Adelyn Breelove <[email protected]> | 2018-12-19 15:50:16 -0700 |
|---|---|---|
| committer | Adelyn Breelove <[email protected]> | 2018-12-19 15:50:16 -0700 |
| commit | 66e1462b8dd3f2b89cf066f314eeb9070b05be69 (patch) | |
| tree | 1f55452f959b7ea3f8c20e14fb8b3a58c89e8f37 | |
| parent | Add proper type parsing to Guild (diff) | |
| download | disml-66e1462b8dd3f2b89cf066f314eeb9070b05be69.tar.xz disml-66e1462b8dd3f2b89cf066f314eeb9070b05be69.zip | |
Fix member abstraction and helper methods
| -rw-r--r-- | disml.install | 285 | ||||
| -rw-r--r-- | lib/dune | 39 | ||||
| -rw-r--r-- | lib/event.ml | 23 | ||||
| -rw-r--r-- | lib/member.atd | 12 | ||||
| -rw-r--r-- | lib/models/guild.ml | 4 | ||||
| -rw-r--r-- | lib/models/role.ml | 4 | ||||
| -rw-r--r-- | lib/role.atd | 2 |
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" ] @@ -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 = { |