diff options
Diffstat (limited to 'lib/models/id/user_id_t.ml')
| -rw-r--r-- | lib/models/id/user_id_t.ml | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/models/id/user_id_t.ml b/lib/models/id/user_id_t.ml index fab0f00..cf1634a 100644 --- a/lib/models/id/user_id_t.ml +++ b/lib/models/id/user_id_t.ml @@ -1,7 +1,15 @@ open Core
-type t = Snowflake.t [@@deriving sexp, yojson]
+type t = [ `User_id of Snowflake.t ] [@@deriving sexp]
-let compare t t' = Int64.compare t t'
+let compare (`User_id t) (`User_id t') = Int.compare t t'
-let get_id id = id
\ No newline at end of file +let of_yojson a : (t, string) result =
+ match Snowflake.of_yojson a with
+ | Ok id -> Ok (`User_id id)
+ | Error err -> Error err
+
+let of_yojson_exn a : t = `User_id (Snowflake.of_yojson_exn a)
+let to_yojson (`User_id id) = (Snowflake.to_yojson id)
+
+let get_id (`User_id id) = id
\ No newline at end of file |