diff options
| author | Adelyn Breelove <[email protected]> | 2019-02-19 12:00:10 -0700 |
|---|---|---|
| committer | Adelyn Breelove <[email protected]> | 2019-02-19 12:00:10 -0700 |
| commit | 34016fba55c1417408003c4689037bd8c7fc7881 (patch) | |
| tree | f4c1a4542267f034f4296f52593f66c17216d1cc /lib/models | |
| parent | Add unavailable guilds to cache test (diff) | |
| download | disml-34016fba55c1417408003c4689037bd8c7fc7881.tar.xz disml-34016fba55c1417408003c4689037bd8c7fc7881.zip | |
Add permissions module
Diffstat (limited to 'lib/models')
| -rw-r--r-- | lib/models/permissions.ml | 47 | ||||
| -rw-r--r-- | lib/models/permissions.mli | 34 |
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 |