aboutsummaryrefslogtreecommitdiff
path: root/lib/models
diff options
context:
space:
mode:
authorAdelyn Breelove <[email protected]>2019-02-19 12:00:10 -0700
committerAdelyn Breelove <[email protected]>2019-02-19 12:00:10 -0700
commit34016fba55c1417408003c4689037bd8c7fc7881 (patch)
treef4c1a4542267f034f4296f52593f66c17216d1cc /lib/models
parentAdd unavailable guilds to cache test (diff)
downloaddisml-34016fba55c1417408003c4689037bd8c7fc7881.tar.xz
disml-34016fba55c1417408003c4689037bd8c7fc7881.zip
Add permissions module
Diffstat (limited to 'lib/models')
-rw-r--r--lib/models/permissions.ml47
-rw-r--r--lib/models/permissions.mli34
2 files changed, 81 insertions, 0 deletions
diff --git a/lib/models/permissions.ml b/lib/models/permissions.ml
new file mode 100644
index 0000000..0026f49
--- /dev/null
+++ b/lib/models/permissions.ml
@@ -0,0 +1,47 @@
+type elt =
+| CREATE_INSTANT_INVITE
+| KICK_MEMBERS
+| BAN_MEMBERS
+| ADMINISTRATOR
+| MANAGE_CHANNELS
+| MANAGE_GUILD
+| ADD_REACTIONS
+| VIEW_AUDIT_LOG
+| PRIORITY_SPEAKER
+| READ_MESSAGES
+| SEND_MESSAGES
+| SEND_TTS_MESSAGES
+| MANAGE_MESSAGES
+| EMBED_LINKS
+| ATTACH_FILES
+| READ_MESSAGE_HISTORY
+| MENTION_EVERYONE
+| USE_EXTERNAL_EMOJIS
+| CONNECT
+| SPEAK
+| MUTE_MEMBERS
+| DEAFEN_MEMBERS
+| MOVE_MEMBERS
+| USE_VAD
+| CHANGE_NICKNAME
+| MANAGE_NICKNAMES
+| MANAGE_ROLES
+| MANAGE_WEBHOOKS
+| MANAGE_EMOJIS
+
+include BitMaskSet.Make(struct
+ include BitMaskSet.Int
+ type t = elt
+ let mask = 0b0111_1111_1111_1111_0111_1101_1111_1111
+end)
+
+let of_seq seq = List.of_seq seq |> of_list
+
+let to_seq mask = elements mask |> List.to_seq
+
+let to_seq_from (elt:elt) (_:storage) = Seq.return elt
+
+let add_seq seq init =
+ List.of_seq seq
+ |> of_list
+ |> (lor) init \ No newline at end of file
diff --git a/lib/models/permissions.mli b/lib/models/permissions.mli
new file mode 100644
index 0000000..74ed563
--- /dev/null
+++ b/lib/models/permissions.mli
@@ -0,0 +1,34 @@
+type elt =
+| CREATE_INSTANT_INVITE
+| KICK_MEMBERS
+| BAN_MEMBERS
+| ADMINISTRATOR
+| MANAGE_CHANNELS
+| MANAGE_GUILD
+| ADD_REACTIONS
+| VIEW_AUDIT_LOG
+| PRIORITY_SPEAKER
+| READ_MESSAGES
+| SEND_MESSAGES
+| SEND_TTS_MESSAGES
+| MANAGE_MESSAGES
+| EMBED_LINKS
+| ATTACH_FILES
+| READ_MESSAGE_HISTORY
+| MENTION_EVERYONE
+| USE_EXTERNAL_EMOJIS
+| CONNECT
+| SPEAK
+| MUTE_MEMBERS
+| DEAFEN_MEMBERS
+| MOVE_MEMBERS
+| USE_VAD
+| CHANGE_NICKNAME
+| MANAGE_NICKNAMES
+| MANAGE_ROLES
+| MANAGE_WEBHOOKS
+| MANAGE_EMOJIS
+
+include BitMaskSet.S with type elt := elt
+ with type storage = int
+ with type t = private int \ No newline at end of file