diff options
| author | Adelyn Breedlove <[email protected]> | 2019-02-20 10:16:52 -0700 |
|---|---|---|
| committer | Adelyn Breedlove <[email protected]> | 2019-02-20 10:16:52 -0700 |
| commit | 4295208b94245ee513eaabd06381b7f700376115 (patch) | |
| tree | e1abac09378d4b55a29df37f51fa93182a60023f /lib/models/permissions.ml | |
| parent | Add permissions to role models (diff) | |
| download | disml-4295208b94245ee513eaabd06381b7f700376115.tar.xz disml-4295208b94245ee513eaabd06381b7f700376115.zip | |
Fix permissions and add more conversions
Diffstat (limited to 'lib/models/permissions.ml')
| -rw-r--r-- | lib/models/permissions.ml | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/models/permissions.ml b/lib/models/permissions.ml index 1521a0e..2b217b8 100644 --- a/lib/models/permissions.ml +++ b/lib/models/permissions.ml @@ -28,13 +28,25 @@ type elt = | MANAGE_ROLES | MANAGE_WEBHOOKS | MANAGE_EMOJIS +[@@deriving sexp] include BitMaskSet.Make(struct include BitMaskSet.Int type t = elt - let mask = 0b0111_1111_1111_1111_0111_1101_1111_1111 + let mask = 0b0111_1111_1111_0111_1111_1101_1111_1111 end) +let sexp_of_t = Core.Int.sexp_of_t +let t_of_sexp = Core.Int.t_of_sexp + +let of_yojson_exn j = create @@ Yojson.Safe.Util.to_int j + +let of_yojson j = + try Ok (of_yojson_exn j) + with Yojson.Safe.Util.Type_error (why,_) -> Error why + +let to_yojson t : Yojson.Safe.t = `Int t + let of_seq seq = List.of_seq seq |> of_list let to_seq mask = elements mask |> List.to_seq |