aboutsummaryrefslogtreecommitdiff
path: root/lib/models
diff options
context:
space:
mode:
authorAdelyn Breelove <[email protected]>2018-12-13 15:50:37 -0700
committerAdelyn Breelove <[email protected]>2018-12-13 15:50:37 -0700
commit179d9598fe62e2966471b312fd438e98ff3a272a (patch)
treecbe69315ccd51dc69912a39fee30dfa767fa491e /lib/models
parentWorking on deriving types from json (diff)
downloaddisml-179d9598fe62e2966471b312fd438e98ff3a272a.tar.xz
disml-179d9598fe62e2966471b312fd438e98ff3a272a.zip
Fix more dispatch issues
Diffstat (limited to 'lib/models')
-rw-r--r--lib/models/activity.atd6
-rw-r--r--lib/models/activity_j.ml223
-rw-r--r--lib/models/activity_j.mli24
-rw-r--r--lib/models/activity_t.ml4
-rw-r--r--lib/models/activity_t.mli4
-rw-r--r--lib/models/member.atd8
-rw-r--r--lib/models/member_j.ml404
-rw-r--r--lib/models/member_j.mli30
-rw-r--r--lib/models/member_t.ml10
-rw-r--r--lib/models/member_t.mli10
-rw-r--r--lib/models/message.atd3
-rw-r--r--lib/models/message_j.ml46
-rw-r--r--lib/models/message_j.mli50
-rw-r--r--lib/models/message_t.ml6
-rw-r--r--lib/models/message_t.mli6
-rw-r--r--lib/models/presence.atd10
-rw-r--r--lib/models/presence_j.ml140
-rw-r--r--lib/models/presence_j.mli58
-rw-r--r--lib/models/presence_t.ml10
-rw-r--r--lib/models/presence_t.mli10
-rw-r--r--lib/models/user.atd4
-rw-r--r--lib/models/user_j.ml100
-rw-r--r--lib/models/user_j.mli22
-rw-r--r--lib/models/user_t.ml2
-rw-r--r--lib/models/user_t.mli2
25 files changed, 916 insertions, 276 deletions
diff --git a/lib/models/activity.atd b/lib/models/activity.atd
index 94b4b3c..8e02191 100644
--- a/lib/models/activity.atd
+++ b/lib/models/activity.atd
@@ -1,5 +1,5 @@
-type snowflake <ocaml from="Snowflake" t="t"> = abstract
-
type t = {
- id: snowflake;
+ name: string;
+ kind <json name="type">: int;
+ ?url: string option;
} \ No newline at end of file
diff --git a/lib/models/activity_j.ml b/lib/models/activity_j.ml
index 8a4eb2e..eb1a62e 100644
--- a/lib/models/activity_j.ml
+++ b/lib/models/activity_j.ml
@@ -1,22 +1,65 @@
(* Auto-generated from "activity.atd" *)
[@@@ocaml.warning "-27-32-35-39"]
-type snowflake = Snowflake_t.t
+type t = Activity_t.t = { name: string; kind: int; url: string option }
-type t = Activity_t.t = { id: snowflake }
-
-let write_snowflake = (
- Snowflake_j.write_t
+let write__1 = (
+ Atdgen_runtime.Oj_run.write_option (
+ Yojson.Safe.write_string
+ )
)
-let string_of_snowflake ?(len = 1024) x =
+let string_of__1 ?(len = 1024) x =
let ob = Bi_outbuf.create len in
- write_snowflake ob x;
+ write__1 ob x;
Bi_outbuf.contents ob
-let read_snowflake = (
- Snowflake_j.read_t
+let read__1 = (
+ fun p lb ->
+ Yojson.Safe.read_space p lb;
+ match Yojson.Safe.start_any_variant p lb with
+ | `Edgy_bracket -> (
+ match Yojson.Safe.read_ident p lb with
+ | "None" ->
+ Yojson.Safe.read_space p lb;
+ Yojson.Safe.read_gt p lb;
+ (None : _ option)
+ | "Some" ->
+ Atdgen_runtime.Oj_run.read_until_field_value p lb;
+ let x = (
+ Atdgen_runtime.Oj_run.read_string
+ ) p lb
+ in
+ Yojson.Safe.read_space p lb;
+ Yojson.Safe.read_gt p lb;
+ (Some x : _ option)
+ | x ->
+ Atdgen_runtime.Oj_run.invalid_variant_tag p x
+ )
+ | `Double_quote -> (
+ match Yojson.Safe.finish_string p lb with
+ | "None" ->
+ (None : _ option)
+ | x ->
+ Atdgen_runtime.Oj_run.invalid_variant_tag p x
+ )
+ | `Square_bracket -> (
+ match Atdgen_runtime.Oj_run.read_string p lb with
+ | "Some" ->
+ Yojson.Safe.read_space p lb;
+ Yojson.Safe.read_comma p lb;
+ Yojson.Safe.read_space p lb;
+ let x = (
+ Atdgen_runtime.Oj_run.read_string
+ ) p lb
+ in
+ Yojson.Safe.read_space p lb;
+ Yojson.Safe.read_rbr p lb;
+ (Some x : _ option)
+ | x ->
+ Atdgen_runtime.Oj_run.invalid_variant_tag p x
+ )
)
-let snowflake_of_string s =
- read_snowflake (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
+let _1_of_string s =
+ read__1 (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
let write_t : _ -> t -> _ = (
fun ob x ->
Bi_outbuf.add_char ob '{';
@@ -25,11 +68,31 @@ let write_t : _ -> t -> _ = (
is_first := false
else
Bi_outbuf.add_char ob ',';
- Bi_outbuf.add_string ob "\"id\":";
+ Bi_outbuf.add_string ob "\"name\":";
+ (
+ Yojson.Safe.write_string
+ )
+ ob x.name;
+ if !is_first then
+ is_first := false
+ else
+ Bi_outbuf.add_char ob ',';
+ Bi_outbuf.add_string ob "\"type\":";
(
- write_snowflake
+ Yojson.Safe.write_int
)
- ob x.id;
+ ob x.kind;
+ (match x.url with None -> () | Some x ->
+ if !is_first then
+ is_first := false
+ else
+ Bi_outbuf.add_char ob ',';
+ Bi_outbuf.add_string ob "\"url\":";
+ (
+ Yojson.Safe.write_string
+ )
+ ob x;
+ );
Bi_outbuf.add_char ob '}';
)
let string_of_t ?(len = 1024) x =
@@ -40,7 +103,9 @@ let read_t = (
fun p lb ->
Yojson.Safe.read_space p lb;
Yojson.Safe.read_lcurl p lb;
- let field_id = ref (Obj.magic (Sys.opaque_identity 0.0)) in
+ let field_name = ref (Obj.magic (Sys.opaque_identity 0.0)) in
+ let field_kind = ref (Obj.magic (Sys.opaque_identity 0.0)) in
+ let field_url = ref (None) in
let bits0 = ref 0 in
try
Yojson.Safe.read_space p lb;
@@ -50,24 +115,69 @@ let read_t = (
fun s pos len ->
if pos < 0 || len < 0 || pos + len > String.length s then
invalid_arg "out-of-bounds substring position or length";
- if len = 2 && String.unsafe_get s pos = 'i' && String.unsafe_get s (pos+1) = 'd' then (
- 0
- )
- else (
- -1
- )
+ match len with
+ | 3 -> (
+ if String.unsafe_get s pos = 'u' && String.unsafe_get s (pos+1) = 'r' && String.unsafe_get s (pos+2) = 'l' then (
+ 2
+ )
+ else (
+ -1
+ )
+ )
+ | 4 -> (
+ match String.unsafe_get s pos with
+ | 'n' -> (
+ if String.unsafe_get s (pos+1) = 'a' && String.unsafe_get s (pos+2) = 'm' && String.unsafe_get s (pos+3) = 'e' then (
+ 0
+ )
+ else (
+ -1
+ )
+ )
+ | 't' -> (
+ if String.unsafe_get s (pos+1) = 'y' && String.unsafe_get s (pos+2) = 'p' && String.unsafe_get s (pos+3) = 'e' then (
+ 1
+ )
+ else (
+ -1
+ )
+ )
+ | _ -> (
+ -1
+ )
+ )
+ | _ -> (
+ -1
+ )
in
let i = Yojson.Safe.map_ident p f lb in
Atdgen_runtime.Oj_run.read_until_field_value p lb;
(
match i with
| 0 ->
- field_id := (
+ field_name := (
(
- read_snowflake
+ Atdgen_runtime.Oj_run.read_string
) p lb
);
bits0 := !bits0 lor 0x1;
+ | 1 ->
+ field_kind := (
+ (
+ Atdgen_runtime.Oj_run.read_int
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x2;
+ | 2 ->
+ if not (Yojson.Safe.read_null_if_possible p lb) then (
+ field_url := (
+ Some (
+ (
+ Atdgen_runtime.Oj_run.read_string
+ ) p lb
+ )
+ );
+ )
| _ -> (
Yojson.Safe.skip_json p lb
)
@@ -80,24 +190,69 @@ let read_t = (
fun s pos len ->
if pos < 0 || len < 0 || pos + len > String.length s then
invalid_arg "out-of-bounds substring position or length";
- if len = 2 && String.unsafe_get s pos = 'i' && String.unsafe_get s (pos+1) = 'd' then (
- 0
- )
- else (
- -1
- )
+ match len with
+ | 3 -> (
+ if String.unsafe_get s pos = 'u' && String.unsafe_get s (pos+1) = 'r' && String.unsafe_get s (pos+2) = 'l' then (
+ 2
+ )
+ else (
+ -1
+ )
+ )
+ | 4 -> (
+ match String.unsafe_get s pos with
+ | 'n' -> (
+ if String.unsafe_get s (pos+1) = 'a' && String.unsafe_get s (pos+2) = 'm' && String.unsafe_get s (pos+3) = 'e' then (
+ 0
+ )
+ else (
+ -1
+ )
+ )
+ | 't' -> (
+ if String.unsafe_get s (pos+1) = 'y' && String.unsafe_get s (pos+2) = 'p' && String.unsafe_get s (pos+3) = 'e' then (
+ 1
+ )
+ else (
+ -1
+ )
+ )
+ | _ -> (
+ -1
+ )
+ )
+ | _ -> (
+ -1
+ )
in
let i = Yojson.Safe.map_ident p f lb in
Atdgen_runtime.Oj_run.read_until_field_value p lb;
(
match i with
| 0 ->
- field_id := (
+ field_name := (
(
- read_snowflake
+ Atdgen_runtime.Oj_run.read_string
) p lb
);
bits0 := !bits0 lor 0x1;
+ | 1 ->
+ field_kind := (
+ (
+ Atdgen_runtime.Oj_run.read_int
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x2;
+ | 2 ->
+ if not (Yojson.Safe.read_null_if_possible p lb) then (
+ field_url := (
+ Some (
+ (
+ Atdgen_runtime.Oj_run.read_string
+ ) p lb
+ )
+ );
+ )
| _ -> (
Yojson.Safe.skip_json p lb
)
@@ -105,10 +260,12 @@ let read_t = (
done;
assert false;
with Yojson.End_of_object -> (
- if !bits0 <> 0x1 then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "id" |];
+ if !bits0 <> 0x3 then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "name"; "kind" |];
(
{
- id = !field_id;
+ name = !field_name;
+ kind = !field_kind;
+ url = !field_url;
}
: t)
)
diff --git a/lib/models/activity_j.mli b/lib/models/activity_j.mli
index 3c93cc1..c179efb 100644
--- a/lib/models/activity_j.mli
+++ b/lib/models/activity_j.mli
@@ -1,29 +1,7 @@
(* Auto-generated from "activity.atd" *)
[@@@ocaml.warning "-27-32-35-39"]
-type snowflake = Snowflake_t.t
-
-type t = Activity_t.t = { id: snowflake }
-
-val write_snowflake :
- Bi_outbuf.t -> snowflake -> unit
- (** Output a JSON value of type {!snowflake}. *)
-
-val string_of_snowflake :
- ?len:int -> snowflake -> string
- (** Serialize a value of type {!snowflake}
- into a JSON string.
- @param len specifies the initial length
- of the buffer used internally.
- Default: 1024. *)
-
-val read_snowflake :
- Yojson.Safe.lexer_state -> Lexing.lexbuf -> snowflake
- (** Input JSON data of type {!snowflake}. *)
-
-val snowflake_of_string :
- string -> snowflake
- (** Deserialize JSON data of type {!snowflake}. *)
+type t = Activity_t.t = { name: string; kind: int; url: string option }
val write_t :
Bi_outbuf.t -> t -> unit
diff --git a/lib/models/activity_t.ml b/lib/models/activity_t.ml
index f9ba6a6..6bb2049 100644
--- a/lib/models/activity_t.ml
+++ b/lib/models/activity_t.ml
@@ -1,6 +1,4 @@
(* Auto-generated from "activity.atd" *)
[@@@ocaml.warning "-27-32-35-39"]
-type snowflake = Snowflake_t.t
-
-type t = { id: snowflake }
+type t = { name: string; kind: int; url: string option }
diff --git a/lib/models/activity_t.mli b/lib/models/activity_t.mli
index f9ba6a6..6bb2049 100644
--- a/lib/models/activity_t.mli
+++ b/lib/models/activity_t.mli
@@ -1,6 +1,4 @@
(* Auto-generated from "activity.atd" *)
[@@@ocaml.warning "-27-32-35-39"]
-type snowflake = Snowflake_t.t
-
-type t = { id: snowflake }
+type t = { name: string; kind: int; url: string option }
diff --git a/lib/models/member.atd b/lib/models/member.atd
index ea00032..11d8b62 100644
--- a/lib/models/member.atd
+++ b/lib/models/member.atd
@@ -1,11 +1,15 @@
type snowflake <ocaml from="Snowflake" t="t"> = abstract
type user <ocaml from="User" t="t"> = abstract
-type t = {
- user: user;
+type partial_member = {
?nick: string option;
roles: snowflake list;
joined_at: string;
deaf: bool;
mute: bool;
+}
+
+type t = {
+ inherit partial_member;
+ user: user;
} \ No newline at end of file
diff --git a/lib/models/member_j.ml b/lib/models/member_j.ml
index 3826c93..7fd4aec 100644
--- a/lib/models/member_j.ml
+++ b/lib/models/member_j.ml
@@ -6,7 +6,15 @@ type user = User_t.t
type snowflake = Snowflake_t.t
type t = Member_t.t = {
- user: user;
+ nick: string option;
+ roles: snowflake list;
+ joined_at: string;
+ deaf: bool;
+ mute: bool;
+ user: user
+}
+
+type partial_member = Member_t.partial_member = {
nick: string option;
roles: snowflake list;
joined_at: string;
@@ -115,15 +123,6 @@ let write_t : _ -> t -> _ = (
fun ob x ->
Bi_outbuf.add_char ob '{';
let is_first = ref true in
- if !is_first then
- is_first := false
- else
- Bi_outbuf.add_char ob ',';
- Bi_outbuf.add_string ob "\"user\":";
- (
- write_user
- )
- ob x.user;
(match x.nick with None -> () | Some x ->
if !is_first then
is_first := false
@@ -171,6 +170,15 @@ let write_t : _ -> t -> _ = (
Yojson.Safe.write_bool
)
ob x.mute;
+ if !is_first then
+ is_first := false
+ else
+ Bi_outbuf.add_char ob ',';
+ Bi_outbuf.add_string ob "\"user\":";
+ (
+ write_user
+ )
+ ob x.user;
Bi_outbuf.add_char ob '}';
)
let string_of_t ?(len = 1024) x =
@@ -181,12 +189,12 @@ let read_t = (
fun p lb ->
Yojson.Safe.read_space p lb;
Yojson.Safe.read_lcurl p lb;
- let field_user = ref (Obj.magic (Sys.opaque_identity 0.0)) in
let field_nick = ref (None) in
let field_roles = ref (Obj.magic (Sys.opaque_identity 0.0)) in
let field_joined_at = ref (Obj.magic (Sys.opaque_identity 0.0)) in
let field_deaf = ref (Obj.magic (Sys.opaque_identity 0.0)) in
let field_mute = ref (Obj.magic (Sys.opaque_identity 0.0)) in
+ let field_user = ref (Obj.magic (Sys.opaque_identity 0.0)) in
let bits0 = ref 0 in
try
Yojson.Safe.read_space p lb;
@@ -201,7 +209,7 @@ let read_t = (
match String.unsafe_get s pos with
| 'd' -> (
if String.unsafe_get s (pos+1) = 'e' && String.unsafe_get s (pos+2) = 'a' && String.unsafe_get s (pos+3) = 'f' then (
- 4
+ 3
)
else (
-1
@@ -209,7 +217,7 @@ let read_t = (
)
| 'm' -> (
if String.unsafe_get s (pos+1) = 'u' && String.unsafe_get s (pos+2) = 't' && String.unsafe_get s (pos+3) = 'e' then (
- 5
+ 4
)
else (
-1
@@ -217,7 +225,7 @@ let read_t = (
)
| 'n' -> (
if String.unsafe_get s (pos+1) = 'i' && String.unsafe_get s (pos+2) = 'c' && String.unsafe_get s (pos+3) = 'k' then (
- 1
+ 0
)
else (
-1
@@ -225,7 +233,7 @@ let read_t = (
)
| 'u' -> (
if String.unsafe_get s (pos+1) = 's' && String.unsafe_get s (pos+2) = 'e' && String.unsafe_get s (pos+3) = 'r' then (
- 0
+ 5
)
else (
-1
@@ -237,7 +245,7 @@ let read_t = (
)
| 5 -> (
if String.unsafe_get s pos = 'r' && String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'l' && String.unsafe_get s (pos+3) = 'e' && String.unsafe_get s (pos+4) = 's' then (
- 2
+ 1
)
else (
-1
@@ -245,7 +253,7 @@ let read_t = (
)
| 9 -> (
if String.unsafe_get s pos = 'j' && String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'i' && String.unsafe_get s (pos+3) = 'n' && String.unsafe_get s (pos+4) = 'e' && String.unsafe_get s (pos+5) = 'd' && String.unsafe_get s (pos+6) = '_' && String.unsafe_get s (pos+7) = 'a' && String.unsafe_get s (pos+8) = 't' then (
- 3
+ 2
)
else (
-1
@@ -260,13 +268,6 @@ let read_t = (
(
match i with
| 0 ->
- field_user := (
- (
- read_user
- ) p lb
- );
- bits0 := !bits0 lor 0x1;
- | 1 ->
if not (Yojson.Safe.read_null_if_possible p lb) then (
field_nick := (
Some (
@@ -276,31 +277,38 @@ let read_t = (
)
);
)
- | 2 ->
+ | 1 ->
field_roles := (
(
read__2
) p lb
);
- bits0 := !bits0 lor 0x2;
- | 3 ->
+ bits0 := !bits0 lor 0x1;
+ | 2 ->
field_joined_at := (
(
Atdgen_runtime.Oj_run.read_string
) p lb
);
+ bits0 := !bits0 lor 0x2;
+ | 3 ->
+ field_deaf := (
+ (
+ Atdgen_runtime.Oj_run.read_bool
+ ) p lb
+ );
bits0 := !bits0 lor 0x4;
| 4 ->
- field_deaf := (
+ field_mute := (
(
Atdgen_runtime.Oj_run.read_bool
) p lb
);
bits0 := !bits0 lor 0x8;
| 5 ->
- field_mute := (
+ field_user := (
(
- Atdgen_runtime.Oj_run.read_bool
+ read_user
) p lb
);
bits0 := !bits0 lor 0x10;
@@ -321,7 +329,7 @@ let read_t = (
match String.unsafe_get s pos with
| 'd' -> (
if String.unsafe_get s (pos+1) = 'e' && String.unsafe_get s (pos+2) = 'a' && String.unsafe_get s (pos+3) = 'f' then (
- 4
+ 3
)
else (
-1
@@ -329,7 +337,7 @@ let read_t = (
)
| 'm' -> (
if String.unsafe_get s (pos+1) = 'u' && String.unsafe_get s (pos+2) = 't' && String.unsafe_get s (pos+3) = 'e' then (
- 5
+ 4
)
else (
-1
@@ -337,7 +345,7 @@ let read_t = (
)
| 'n' -> (
if String.unsafe_get s (pos+1) = 'i' && String.unsafe_get s (pos+2) = 'c' && String.unsafe_get s (pos+3) = 'k' then (
- 1
+ 0
)
else (
-1
@@ -345,7 +353,7 @@ let read_t = (
)
| 'u' -> (
if String.unsafe_get s (pos+1) = 's' && String.unsafe_get s (pos+2) = 'e' && String.unsafe_get s (pos+3) = 'r' then (
- 0
+ 5
)
else (
-1
@@ -357,7 +365,7 @@ let read_t = (
)
| 5 -> (
if String.unsafe_get s pos = 'r' && String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'l' && String.unsafe_get s (pos+3) = 'e' && String.unsafe_get s (pos+4) = 's' then (
- 2
+ 1
)
else (
-1
@@ -365,7 +373,7 @@ let read_t = (
)
| 9 -> (
if String.unsafe_get s pos = 'j' && String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'i' && String.unsafe_get s (pos+3) = 'n' && String.unsafe_get s (pos+4) = 'e' && String.unsafe_get s (pos+5) = 'd' && String.unsafe_get s (pos+6) = '_' && String.unsafe_get s (pos+7) = 'a' && String.unsafe_get s (pos+8) = 't' then (
- 3
+ 2
)
else (
-1
@@ -380,13 +388,6 @@ let read_t = (
(
match i with
| 0 ->
- field_user := (
- (
- read_user
- ) p lb
- );
- bits0 := !bits0 lor 0x1;
- | 1 ->
if not (Yojson.Safe.read_null_if_possible p lb) then (
field_nick := (
Some (
@@ -396,31 +397,38 @@ let read_t = (
)
);
)
- | 2 ->
+ | 1 ->
field_roles := (
(
read__2
) p lb
);
- bits0 := !bits0 lor 0x2;
- | 3 ->
+ bits0 := !bits0 lor 0x1;
+ | 2 ->
field_joined_at := (
(
Atdgen_runtime.Oj_run.read_string
) p lb
);
+ bits0 := !bits0 lor 0x2;
+ | 3 ->
+ field_deaf := (
+ (
+ Atdgen_runtime.Oj_run.read_bool
+ ) p lb
+ );
bits0 := !bits0 lor 0x4;
| 4 ->
- field_deaf := (
+ field_mute := (
(
Atdgen_runtime.Oj_run.read_bool
) p lb
);
bits0 := !bits0 lor 0x8;
| 5 ->
- field_mute := (
+ field_user := (
(
- Atdgen_runtime.Oj_run.read_bool
+ read_user
) p lb
);
bits0 := !bits0 lor 0x10;
@@ -431,18 +439,312 @@ let read_t = (
done;
assert false;
with Yojson.End_of_object -> (
- if !bits0 <> 0x1f then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "user"; "roles"; "joined_at"; "deaf"; "mute" |];
+ if !bits0 <> 0x1f then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "roles"; "joined_at"; "deaf"; "mute"; "user" |];
(
{
- user = !field_user;
nick = !field_nick;
roles = !field_roles;
joined_at = !field_joined_at;
deaf = !field_deaf;
mute = !field_mute;
+ user = !field_user;
}
: t)
)
)
let t_of_string s =
read_t (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
+let write_partial_member : _ -> partial_member -> _ = (
+ fun ob x ->
+ Bi_outbuf.add_char ob '{';
+ let is_first = ref true in
+ (match x.nick with None -> () | Some x ->
+ if !is_first then
+ is_first := false
+ else
+ Bi_outbuf.add_char ob ',';
+ Bi_outbuf.add_string ob "\"nick\":";
+ (
+ Yojson.Safe.write_string
+ )
+ ob x;
+ );
+ if !is_first then
+ is_first := false
+ else
+ Bi_outbuf.add_char ob ',';
+ Bi_outbuf.add_string ob "\"roles\":";
+ (
+ write__2
+ )
+ ob x.roles;
+ if !is_first then
+ is_first := false
+ else
+ Bi_outbuf.add_char ob ',';
+ Bi_outbuf.add_string ob "\"joined_at\":";
+ (
+ Yojson.Safe.write_string
+ )
+ ob x.joined_at;
+ if !is_first then
+ is_first := false
+ else
+ Bi_outbuf.add_char ob ',';
+ Bi_outbuf.add_string ob "\"deaf\":";
+ (
+ Yojson.Safe.write_bool
+ )
+ ob x.deaf;
+ if !is_first then
+ is_first := false
+ else
+ Bi_outbuf.add_char ob ',';
+ Bi_outbuf.add_string ob "\"mute\":";
+ (
+ Yojson.Safe.write_bool
+ )
+ ob x.mute;
+ Bi_outbuf.add_char ob '}';
+)
+let string_of_partial_member ?(len = 1024) x =
+ let ob = Bi_outbuf.create len in
+ write_partial_member ob x;
+ Bi_outbuf.contents ob
+let read_partial_member = (
+ fun p lb ->
+ Yojson.Safe.read_space p lb;
+ Yojson.Safe.read_lcurl p lb;
+ let field_nick = ref (None) in
+ let field_roles = ref (Obj.magic (Sys.opaque_identity 0.0)) in
+ let field_joined_at = ref (Obj.magic (Sys.opaque_identity 0.0)) in
+ let field_deaf = ref (Obj.magic (Sys.opaque_identity 0.0)) in
+ let field_mute = ref (Obj.magic (Sys.opaque_identity 0.0)) in
+ let bits0 = ref 0 in
+ try
+ Yojson.Safe.read_space p lb;
+ Yojson.Safe.read_object_end lb;
+ Yojson.Safe.read_space p lb;
+ let f =
+ fun s pos len ->
+ if pos < 0 || len < 0 || pos + len > String.length s then
+ invalid_arg "out-of-bounds substring position or length";
+ match len with
+ | 4 -> (
+ match String.unsafe_get s pos with
+ | 'd' -> (
+ if String.unsafe_get s (pos+1) = 'e' && String.unsafe_get s (pos+2) = 'a' && String.unsafe_get s (pos+3) = 'f' then (
+ 3
+ )
+ else (
+ -1
+ )
+ )
+ | 'm' -> (
+ if String.unsafe_get s (pos+1) = 'u' && String.unsafe_get s (pos+2) = 't' && String.unsafe_get s (pos+3) = 'e' then (
+ 4
+ )
+ else (
+ -1
+ )
+ )
+ | 'n' -> (
+ if String.unsafe_get s (pos+1) = 'i' && String.unsafe_get s (pos+2) = 'c' && String.unsafe_get s (pos+3) = 'k' then (
+ 0
+ )
+ else (
+ -1
+ )
+ )
+ | _ -> (
+ -1
+ )
+ )
+ | 5 -> (
+ if String.unsafe_get s pos = 'r' && String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'l' && String.unsafe_get s (pos+3) = 'e' && String.unsafe_get s (pos+4) = 's' then (
+ 1
+ )
+ else (
+ -1
+ )
+ )
+ | 9 -> (
+ if String.unsafe_get s pos = 'j' && String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'i' && String.unsafe_get s (pos+3) = 'n' && String.unsafe_get s (pos+4) = 'e' && String.unsafe_get s (pos+5) = 'd' && String.unsafe_get s (pos+6) = '_' && String.unsafe_get s (pos+7) = 'a' && String.unsafe_get s (pos+8) = 't' then (
+ 2
+ )
+ else (
+ -1
+ )
+ )
+ | _ -> (
+ -1
+ )
+ in
+ let i = Yojson.Safe.map_ident p f lb in
+ Atdgen_runtime.Oj_run.read_until_field_value p lb;
+ (
+ match i with
+ | 0 ->
+ if not (Yojson.Safe.read_null_if_possible p lb) then (
+ field_nick := (
+ Some (
+ (
+ Atdgen_runtime.Oj_run.read_string
+ ) p lb
+ )
+ );
+ )
+ | 1 ->
+ field_roles := (
+ (
+ read__2
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x1;
+ | 2 ->
+ field_joined_at := (
+ (
+ Atdgen_runtime.Oj_run.read_string
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x2;
+ | 3 ->
+ field_deaf := (
+ (
+ Atdgen_runtime.Oj_run.read_bool
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x4;
+ | 4 ->
+ field_mute := (
+ (
+ Atdgen_runtime.Oj_run.read_bool
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x8;
+ | _ -> (
+ Yojson.Safe.skip_json p lb
+ )
+ );
+ while true do
+ Yojson.Safe.read_space p lb;
+ Yojson.Safe.read_object_sep p lb;
+ Yojson.Safe.read_space p lb;
+ let f =
+ fun s pos len ->
+ if pos < 0 || len < 0 || pos + len > String.length s then
+ invalid_arg "out-of-bounds substring position or length";
+ match len with
+ | 4 -> (
+ match String.unsafe_get s pos with
+ | 'd' -> (
+ if String.unsafe_get s (pos+1) = 'e' && String.unsafe_get s (pos+2) = 'a' && String.unsafe_get s (pos+3) = 'f' then (
+ 3
+ )
+ else (
+ -1
+ )
+ )
+ | 'm' -> (
+ if String.unsafe_get s (pos+1) = 'u' && String.unsafe_get s (pos+2) = 't' && String.unsafe_get s (pos+3) = 'e' then (
+ 4
+ )
+ else (
+ -1
+ )
+ )
+ | 'n' -> (
+ if String.unsafe_get s (pos+1) = 'i' && String.unsafe_get s (pos+2) = 'c' && String.unsafe_get s (pos+3) = 'k' then (
+ 0
+ )
+ else (
+ -1
+ )
+ )
+ | _ -> (
+ -1
+ )
+ )
+ | 5 -> (
+ if String.unsafe_get s pos = 'r' && String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'l' && String.unsafe_get s (pos+3) = 'e' && String.unsafe_get s (pos+4) = 's' then (
+ 1
+ )
+ else (
+ -1
+ )
+ )
+ | 9 -> (
+ if String.unsafe_get s pos = 'j' && String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'i' && String.unsafe_get s (pos+3) = 'n' && String.unsafe_get s (pos+4) = 'e' && String.unsafe_get s (pos+5) = 'd' && String.unsafe_get s (pos+6) = '_' && String.unsafe_get s (pos+7) = 'a' && String.unsafe_get s (pos+8) = 't' then (
+ 2
+ )
+ else (
+ -1
+ )
+ )
+ | _ -> (
+ -1
+ )
+ in
+ let i = Yojson.Safe.map_ident p f lb in
+ Atdgen_runtime.Oj_run.read_until_field_value p lb;
+ (
+ match i with
+ | 0 ->
+ if not (Yojson.Safe.read_null_if_possible p lb) then (
+ field_nick := (
+ Some (
+ (
+ Atdgen_runtime.Oj_run.read_string
+ ) p lb
+ )
+ );
+ )
+ | 1 ->
+ field_roles := (
+ (
+ read__2
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x1;
+ | 2 ->
+ field_joined_at := (
+ (
+ Atdgen_runtime.Oj_run.read_string
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x2;
+ | 3 ->
+ field_deaf := (
+ (
+ Atdgen_runtime.Oj_run.read_bool
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x4;
+ | 4 ->
+ field_mute := (
+ (
+ Atdgen_runtime.Oj_run.read_bool
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x8;
+ | _ -> (
+ Yojson.Safe.skip_json p lb
+ )
+ );
+ done;
+ assert false;
+ with Yojson.End_of_object -> (
+ if !bits0 <> 0xf then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "roles"; "joined_at"; "deaf"; "mute" |];
+ (
+ {
+ nick = !field_nick;
+ roles = !field_roles;
+ joined_at = !field_joined_at;
+ deaf = !field_deaf;
+ mute = !field_mute;
+ }
+ : partial_member)
+ )
+)
+let partial_member_of_string s =
+ read_partial_member (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
diff --git a/lib/models/member_j.mli b/lib/models/member_j.mli
index 28c89fd..f160b6d 100644
--- a/lib/models/member_j.mli
+++ b/lib/models/member_j.mli
@@ -6,7 +6,15 @@ type user = User_t.t
type snowflake = Snowflake_t.t
type t = Member_t.t = {
- user: user;
+ nick: string option;
+ roles: snowflake list;
+ joined_at: string;
+ deaf: bool;
+ mute: bool;
+ user: user
+}
+
+type partial_member = Member_t.partial_member = {
nick: string option;
roles: snowflake list;
joined_at: string;
@@ -74,3 +82,23 @@ val t_of_string :
string -> t
(** Deserialize JSON data of type {!t}. *)
+val write_partial_member :
+ Bi_outbuf.t -> partial_member -> unit
+ (** Output a JSON value of type {!partial_member}. *)
+
+val string_of_partial_member :
+ ?len:int -> partial_member -> string
+ (** Serialize a value of type {!partial_member}
+ into a JSON string.
+ @param len specifies the initial length
+ of the buffer used internally.
+ Default: 1024. *)
+
+val read_partial_member :
+ Yojson.Safe.lexer_state -> Lexing.lexbuf -> partial_member
+ (** Input JSON data of type {!partial_member}. *)
+
+val partial_member_of_string :
+ string -> partial_member
+ (** Deserialize JSON data of type {!partial_member}. *)
+
diff --git a/lib/models/member_t.ml b/lib/models/member_t.ml
index 1dd6ecd..6262e1b 100644
--- a/lib/models/member_t.ml
+++ b/lib/models/member_t.ml
@@ -6,7 +6,15 @@ type user = User_t.t
type snowflake = Snowflake_t.t
type t = {
- user: user;
+ nick: string option;
+ roles: snowflake list;
+ joined_at: string;
+ deaf: bool;
+ mute: bool;
+ user: user
+}
+
+type partial_member = {
nick: string option;
roles: snowflake list;
joined_at: string;
diff --git a/lib/models/member_t.mli b/lib/models/member_t.mli
index 1dd6ecd..6262e1b 100644
--- a/lib/models/member_t.mli
+++ b/lib/models/member_t.mli
@@ -6,7 +6,15 @@ type user = User_t.t
type snowflake = Snowflake_t.t
type t = {
- user: user;
+ nick: string option;
+ roles: snowflake list;
+ joined_at: string;
+ deaf: bool;
+ mute: bool;
+ user: user
+}
+
+type partial_member = {
nick: string option;
roles: snowflake list;
joined_at: string;
diff --git a/lib/models/message.atd b/lib/models/message.atd
index 88c60ec..1c90be9 100644
--- a/lib/models/message.atd
+++ b/lib/models/message.atd
@@ -1,6 +1,7 @@
type snowflake <ocaml from="Snowflake" t="t"> = abstract
type user <ocaml from="User" t="t"> = abstract
type member <ocaml from="Member" t="t"> = abstract
+type partial_member <ocaml from="Member" t="partial_member"> = abstract
type role <ocaml from="Role" t="t"> = abstract
type attachment <ocaml from="Attachment" t="t"> = abstract
type embed <ocaml from="Embed" t="t"> = abstract
@@ -10,7 +11,7 @@ type t = {
id: snowflake;
author: user;
channel_id: snowflake;
- ?member: member option;
+ ?member: partial_member option;
?guild_id: snowflake option;
content: string;
timestamp: string;
diff --git a/lib/models/message_j.ml b/lib/models/message_j.ml
index 79f33a1..206d69c 100644
--- a/lib/models/message_j.ml
+++ b/lib/models/message_j.ml
@@ -9,7 +9,7 @@ type role = Role_t.t
type reaction = Reaction_t.t
-type member = Member_t.t
+type partial_member = Member_t.partial_member
type embed = Embed_t.t
@@ -19,7 +19,7 @@ type t = Message_t.t = {
id: snowflake;
author: user;
channel_id: snowflake;
- member: member option;
+ member: partial_member option;
guild_id: snowflake option;
content: string;
timestamp: string;
@@ -37,6 +37,8 @@ type t = Message_t.t = {
kind: int
}
+type member = Member_t.t
+
let write_user = (
User_j.write_t
)
@@ -85,18 +87,18 @@ let read_reaction = (
)
let reaction_of_string s =
read_reaction (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
-let write_member = (
- Member_j.write_t
+let write_partial_member = (
+ Member_j.write_partial_member
)
-let string_of_member ?(len = 1024) x =
+let string_of_partial_member ?(len = 1024) x =
let ob = Bi_outbuf.create len in
- write_member ob x;
+ write_partial_member ob x;
Bi_outbuf.contents ob
-let read_member = (
- Member_j.read_t
+let read_partial_member = (
+ Member_j.read_partial_member
)
-let member_of_string s =
- read_member (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
+let partial_member_of_string s =
+ read_partial_member (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
let write_embed = (
Embed_j.write_t
)
@@ -317,7 +319,7 @@ let _2_of_string s =
read__2 (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
let write__1 = (
Atdgen_runtime.Oj_run.write_option (
- write_member
+ write_partial_member
)
)
let string_of__1 ?(len = 1024) x =
@@ -337,7 +339,7 @@ let read__1 = (
| "Some" ->
Atdgen_runtime.Oj_run.read_until_field_value p lb;
let x = (
- read_member
+ read_partial_member
) p lb
in
Yojson.Safe.read_space p lb;
@@ -360,7 +362,7 @@ let read__1 = (
Yojson.Safe.read_comma p lb;
Yojson.Safe.read_space p lb;
let x = (
- read_member
+ read_partial_member
) p lb
in
Yojson.Safe.read_space p lb;
@@ -410,7 +412,7 @@ let write_t : _ -> t -> _ = (
Bi_outbuf.add_char ob ',';
Bi_outbuf.add_string ob "\"member\":";
(
- write_member
+ write_partial_member
)
ob x;
);
@@ -810,7 +812,7 @@ let read_t = (
field_member := (
Some (
(
- read_member
+ read_partial_member
) p lb
)
);
@@ -1158,7 +1160,7 @@ let read_t = (
field_member := (
Some (
(
- read_member
+ read_partial_member
) p lb
)
);
@@ -1312,3 +1314,15 @@ let read_t = (
)
let t_of_string s =
read_t (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
+let write_member = (
+ Member_j.write_t
+)
+let string_of_member ?(len = 1024) x =
+ let ob = Bi_outbuf.create len in
+ write_member ob x;
+ Bi_outbuf.contents ob
+let read_member = (
+ Member_j.read_t
+)
+let member_of_string s =
+ read_member (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
diff --git a/lib/models/message_j.mli b/lib/models/message_j.mli
index 8f7ce13..e3a3e5b 100644
--- a/lib/models/message_j.mli
+++ b/lib/models/message_j.mli
@@ -9,7 +9,7 @@ type role = Role_t.t
type reaction = Reaction_t.t
-type member = Member_t.t
+type partial_member = Member_t.partial_member
type embed = Embed_t.t
@@ -19,7 +19,7 @@ type t = Message_t.t = {
id: snowflake;
author: user;
channel_id: snowflake;
- member: member option;
+ member: partial_member option;
guild_id: snowflake option;
content: string;
timestamp: string;
@@ -37,6 +37,8 @@ type t = Message_t.t = {
kind: int
}
+type member = Member_t.t
+
val write_user :
Bi_outbuf.t -> user -> unit
(** Output a JSON value of type {!user}. *)
@@ -117,25 +119,25 @@ val reaction_of_string :
string -> reaction
(** Deserialize JSON data of type {!reaction}. *)
-val write_member :
- Bi_outbuf.t -> member -> unit
- (** Output a JSON value of type {!member}. *)
+val write_partial_member :
+ Bi_outbuf.t -> partial_member -> unit
+ (** Output a JSON value of type {!partial_member}. *)
-val string_of_member :
- ?len:int -> member -> string
- (** Serialize a value of type {!member}
+val string_of_partial_member :
+ ?len:int -> partial_member -> string
+ (** Serialize a value of type {!partial_member}
into a JSON string.
@param len specifies the initial length
of the buffer used internally.
Default: 1024. *)
-val read_member :
- Yojson.Safe.lexer_state -> Lexing.lexbuf -> member
- (** Input JSON data of type {!member}. *)
+val read_partial_member :
+ Yojson.Safe.lexer_state -> Lexing.lexbuf -> partial_member
+ (** Input JSON data of type {!partial_member}. *)
-val member_of_string :
- string -> member
- (** Deserialize JSON data of type {!member}. *)
+val partial_member_of_string :
+ string -> partial_member
+ (** Deserialize JSON data of type {!partial_member}. *)
val write_embed :
Bi_outbuf.t -> embed -> unit
@@ -197,3 +199,23 @@ val t_of_string :
string -> t
(** Deserialize JSON data of type {!t}. *)
+val write_member :
+ Bi_outbuf.t -> member -> unit
+ (** Output a JSON value of type {!member}. *)
+
+val string_of_member :
+ ?len:int -> member -> string
+ (** Serialize a value of type {!member}
+ into a JSON string.
+ @param len specifies the initial length
+ of the buffer used internally.
+ Default: 1024. *)
+
+val read_member :
+ Yojson.Safe.lexer_state -> Lexing.lexbuf -> member
+ (** Input JSON data of type {!member}. *)
+
+val member_of_string :
+ string -> member
+ (** Deserialize JSON data of type {!member}. *)
+
diff --git a/lib/models/message_t.ml b/lib/models/message_t.ml
index 3d37442..2442d76 100644
--- a/lib/models/message_t.ml
+++ b/lib/models/message_t.ml
@@ -9,7 +9,7 @@ type role = Role_t.t
type reaction = Reaction_t.t
-type member = Member_t.t
+type partial_member = Member_t.partial_member
type embed = Embed_t.t
@@ -19,7 +19,7 @@ type t = {
id: snowflake;
author: user;
channel_id: snowflake;
- member: member option;
+ member: partial_member option;
guild_id: snowflake option;
content: string;
timestamp: string;
@@ -36,3 +36,5 @@ type t = {
webhook_id: snowflake;
kind: int
}
+
+type member = Member_t.t
diff --git a/lib/models/message_t.mli b/lib/models/message_t.mli
index 3d37442..2442d76 100644
--- a/lib/models/message_t.mli
+++ b/lib/models/message_t.mli
@@ -9,7 +9,7 @@ type role = Role_t.t
type reaction = Reaction_t.t
-type member = Member_t.t
+type partial_member = Member_t.partial_member
type embed = Embed_t.t
@@ -19,7 +19,7 @@ type t = {
id: snowflake;
author: user;
channel_id: snowflake;
- member: member option;
+ member: partial_member option;
guild_id: snowflake option;
content: string;
timestamp: string;
@@ -36,3 +36,5 @@ type t = {
webhook_id: snowflake;
kind: int
}
+
+type member = Member_t.t
diff --git a/lib/models/presence.atd b/lib/models/presence.atd
index c455fec..da9b3fd 100644
--- a/lib/models/presence.atd
+++ b/lib/models/presence.atd
@@ -1,13 +1,13 @@
+type snowflake <ocaml from="Snowflake" t="t"> = abstract
type user <ocaml from="User" t="t"> = abstract
-type role <ocaml from="Role" t="t"> = abstract
+type partial_user <ocaml from="User" t="partial_user"> = abstract
type activity <ocaml from="Activity" t="t"> = abstract
-type guild <ocaml from="Guild" t="t"> = abstract
type t = {
- user: user;
- roles: role list;
+ user: partial_user;
+ roles: snowflake list;
?game: activity option;
- guild: guild;
+ guild_id: snowflake;
status: string;
activities: activity list;
} \ No newline at end of file
diff --git a/lib/models/presence_j.ml b/lib/models/presence_j.ml
index 91ef86d..b4ea497 100644
--- a/lib/models/presence_j.ml
+++ b/lib/models/presence_j.ml
@@ -3,17 +3,17 @@
type user = User_t.t
-type role = Role_t.t
+type snowflake = Snowflake_t.t
-type guild = Guild_t.t
+type partial_user = User_t.partial_user
type activity = Activity_t.t
type t = Presence_t.t = {
- user: user;
- roles: role list;
+ user: partial_user;
+ roles: snowflake list;
game: activity option;
- guild: guild;
+ guild_id: snowflake;
status: string;
activities: activity list
}
@@ -30,30 +30,30 @@ let read_user = (
)
let user_of_string s =
read_user (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
-let write_role = (
- Role_j.write_t
+let write_snowflake = (
+ Snowflake_j.write_t
)
-let string_of_role ?(len = 1024) x =
+let string_of_snowflake ?(len = 1024) x =
let ob = Bi_outbuf.create len in
- write_role ob x;
+ write_snowflake ob x;
Bi_outbuf.contents ob
-let read_role = (
- Role_j.read_t
+let read_snowflake = (
+ Snowflake_j.read_t
)
-let role_of_string s =
- read_role (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
-let write_guild = (
- Guild_j.write_t
+let snowflake_of_string s =
+ read_snowflake (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
+let write_partial_user = (
+ User_j.write_partial_user
)
-let string_of_guild ?(len = 1024) x =
+let string_of_partial_user ?(len = 1024) x =
let ob = Bi_outbuf.create len in
- write_guild ob x;
+ write_partial_user ob x;
Bi_outbuf.contents ob
-let read_guild = (
- Guild_j.read_t
+let read_partial_user = (
+ User_j.read_partial_user
)
-let guild_of_string s =
- read_guild (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
+let partial_user_of_string s =
+ read_partial_user (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
let write_activity = (
Activity_j.write_t
)
@@ -141,7 +141,7 @@ let _2_of_string s =
read__2 (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
let write__1 = (
Atdgen_runtime.Oj_run.write_list (
- write_role
+ write_snowflake
)
)
let string_of__1 ?(len = 1024) x =
@@ -150,7 +150,7 @@ let string_of__1 ?(len = 1024) x =
Bi_outbuf.contents ob
let read__1 = (
Atdgen_runtime.Oj_run.read_list (
- read_role
+ read_snowflake
)
)
let _1_of_string s =
@@ -165,7 +165,7 @@ let write_t : _ -> t -> _ = (
Bi_outbuf.add_char ob ',';
Bi_outbuf.add_string ob "\"user\":";
(
- write_user
+ write_partial_user
)
ob x.user;
if !is_first then
@@ -192,11 +192,11 @@ let write_t : _ -> t -> _ = (
is_first := false
else
Bi_outbuf.add_char ob ',';
- Bi_outbuf.add_string ob "\"guild\":";
+ Bi_outbuf.add_string ob "\"guild_id\":";
(
- write_guild
+ write_snowflake
)
- ob x.guild;
+ ob x.guild_id;
if !is_first then
is_first := false
else
@@ -228,7 +228,7 @@ let read_t = (
let field_user = ref (Obj.magic (Sys.opaque_identity 0.0)) in
let field_roles = ref (Obj.magic (Sys.opaque_identity 0.0)) in
let field_game = ref (None) in
- let field_guild = ref (Obj.magic (Sys.opaque_identity 0.0)) in
+ let field_guild_id = ref (Obj.magic (Sys.opaque_identity 0.0)) in
let field_status = ref (Obj.magic (Sys.opaque_identity 0.0)) in
let field_activities = ref (Obj.magic (Sys.opaque_identity 0.0)) in
let bits0 = ref 0 in
@@ -264,26 +264,12 @@ let read_t = (
)
)
| 5 -> (
- match String.unsafe_get s pos with
- | 'g' -> (
- if String.unsafe_get s (pos+1) = 'u' && String.unsafe_get s (pos+2) = 'i' && String.unsafe_get s (pos+3) = 'l' && String.unsafe_get s (pos+4) = 'd' then (
- 3
- )
- else (
- -1
- )
- )
- | 'r' -> (
- if String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'l' && String.unsafe_get s (pos+3) = 'e' && String.unsafe_get s (pos+4) = 's' then (
- 1
- )
- else (
- -1
- )
- )
- | _ -> (
- -1
- )
+ if String.unsafe_get s pos = 'r' && String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'l' && String.unsafe_get s (pos+3) = 'e' && String.unsafe_get s (pos+4) = 's' then (
+ 1
+ )
+ else (
+ -1
+ )
)
| 6 -> (
if String.unsafe_get s pos = 's' && String.unsafe_get s (pos+1) = 't' && String.unsafe_get s (pos+2) = 'a' && String.unsafe_get s (pos+3) = 't' && String.unsafe_get s (pos+4) = 'u' && String.unsafe_get s (pos+5) = 's' then (
@@ -293,6 +279,14 @@ let read_t = (
-1
)
)
+ | 8 -> (
+ if String.unsafe_get s pos = 'g' && String.unsafe_get s (pos+1) = 'u' && String.unsafe_get s (pos+2) = 'i' && String.unsafe_get s (pos+3) = 'l' && String.unsafe_get s (pos+4) = 'd' && String.unsafe_get s (pos+5) = '_' && String.unsafe_get s (pos+6) = 'i' && String.unsafe_get s (pos+7) = 'd' then (
+ 3
+ )
+ else (
+ -1
+ )
+ )
| 10 -> (
if String.unsafe_get s pos = 'a' && String.unsafe_get s (pos+1) = 'c' && String.unsafe_get s (pos+2) = 't' && String.unsafe_get s (pos+3) = 'i' && String.unsafe_get s (pos+4) = 'v' && String.unsafe_get s (pos+5) = 'i' && String.unsafe_get s (pos+6) = 't' && String.unsafe_get s (pos+7) = 'i' && String.unsafe_get s (pos+8) = 'e' && String.unsafe_get s (pos+9) = 's' then (
5
@@ -312,7 +306,7 @@ let read_t = (
| 0 ->
field_user := (
(
- read_user
+ read_partial_user
) p lb
);
bits0 := !bits0 lor 0x1;
@@ -334,9 +328,9 @@ let read_t = (
);
)
| 3 ->
- field_guild := (
+ field_guild_id := (
(
- read_guild
+ read_snowflake
) p lb
);
bits0 := !bits0 lor 0x4;
@@ -390,26 +384,12 @@ let read_t = (
)
)
| 5 -> (
- match String.unsafe_get s pos with
- | 'g' -> (
- if String.unsafe_get s (pos+1) = 'u' && String.unsafe_get s (pos+2) = 'i' && String.unsafe_get s (pos+3) = 'l' && String.unsafe_get s (pos+4) = 'd' then (
- 3
- )
- else (
- -1
- )
- )
- | 'r' -> (
- if String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'l' && String.unsafe_get s (pos+3) = 'e' && String.unsafe_get s (pos+4) = 's' then (
- 1
- )
- else (
- -1
- )
- )
- | _ -> (
- -1
- )
+ if String.unsafe_get s pos = 'r' && String.unsafe_get s (pos+1) = 'o' && String.unsafe_get s (pos+2) = 'l' && String.unsafe_get s (pos+3) = 'e' && String.unsafe_get s (pos+4) = 's' then (
+ 1
+ )
+ else (
+ -1
+ )
)
| 6 -> (
if String.unsafe_get s pos = 's' && String.unsafe_get s (pos+1) = 't' && String.unsafe_get s (pos+2) = 'a' && String.unsafe_get s (pos+3) = 't' && String.unsafe_get s (pos+4) = 'u' && String.unsafe_get s (pos+5) = 's' then (
@@ -419,6 +399,14 @@ let read_t = (
-1
)
)
+ | 8 -> (
+ if String.unsafe_get s pos = 'g' && String.unsafe_get s (pos+1) = 'u' && String.unsafe_get s (pos+2) = 'i' && String.unsafe_get s (pos+3) = 'l' && String.unsafe_get s (pos+4) = 'd' && String.unsafe_get s (pos+5) = '_' && String.unsafe_get s (pos+6) = 'i' && String.unsafe_get s (pos+7) = 'd' then (
+ 3
+ )
+ else (
+ -1
+ )
+ )
| 10 -> (
if String.unsafe_get s pos = 'a' && String.unsafe_get s (pos+1) = 'c' && String.unsafe_get s (pos+2) = 't' && String.unsafe_get s (pos+3) = 'i' && String.unsafe_get s (pos+4) = 'v' && String.unsafe_get s (pos+5) = 'i' && String.unsafe_get s (pos+6) = 't' && String.unsafe_get s (pos+7) = 'i' && String.unsafe_get s (pos+8) = 'e' && String.unsafe_get s (pos+9) = 's' then (
5
@@ -438,7 +426,7 @@ let read_t = (
| 0 ->
field_user := (
(
- read_user
+ read_partial_user
) p lb
);
bits0 := !bits0 lor 0x1;
@@ -460,9 +448,9 @@ let read_t = (
);
)
| 3 ->
- field_guild := (
+ field_guild_id := (
(
- read_guild
+ read_snowflake
) p lb
);
bits0 := !bits0 lor 0x4;
@@ -487,13 +475,13 @@ let read_t = (
done;
assert false;
with Yojson.End_of_object -> (
- if !bits0 <> 0x1f then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "user"; "roles"; "guild"; "status"; "activities" |];
+ if !bits0 <> 0x1f then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "user"; "roles"; "guild_id"; "status"; "activities" |];
(
{
user = !field_user;
roles = !field_roles;
game = !field_game;
- guild = !field_guild;
+ guild_id = !field_guild_id;
status = !field_status;
activities = !field_activities;
}
diff --git a/lib/models/presence_j.mli b/lib/models/presence_j.mli
index 9da05ec..be68b3f 100644
--- a/lib/models/presence_j.mli
+++ b/lib/models/presence_j.mli
@@ -3,17 +3,17 @@
type user = User_t.t
-type role = Role_t.t
+type snowflake = Snowflake_t.t
-type guild = Guild_t.t
+type partial_user = User_t.partial_user
type activity = Activity_t.t
type t = Presence_t.t = {
- user: user;
- roles: role list;
+ user: partial_user;
+ roles: snowflake list;
game: activity option;
- guild: guild;
+ guild_id: snowflake;
status: string;
activities: activity list
}
@@ -38,45 +38,45 @@ val user_of_string :
string -> user
(** Deserialize JSON data of type {!user}. *)
-val write_role :
- Bi_outbuf.t -> role -> unit
- (** Output a JSON value of type {!role}. *)
+val write_snowflake :
+ Bi_outbuf.t -> snowflake -> unit
+ (** Output a JSON value of type {!snowflake}. *)
-val string_of_role :
- ?len:int -> role -> string
- (** Serialize a value of type {!role}
+val string_of_snowflake :
+ ?len:int -> snowflake -> string
+ (** Serialize a value of type {!snowflake}
into a JSON string.
@param len specifies the initial length
of the buffer used internally.
Default: 1024. *)
-val read_role :
- Yojson.Safe.lexer_state -> Lexing.lexbuf -> role
- (** Input JSON data of type {!role}. *)
+val read_snowflake :
+ Yojson.Safe.lexer_state -> Lexing.lexbuf -> snowflake
+ (** Input JSON data of type {!snowflake}. *)
-val role_of_string :
- string -> role
- (** Deserialize JSON data of type {!role}. *)
+val snowflake_of_string :
+ string -> snowflake
+ (** Deserialize JSON data of type {!snowflake}. *)
-val write_guild :
- Bi_outbuf.t -> guild -> unit
- (** Output a JSON value of type {!guild}. *)
+val write_partial_user :
+ Bi_outbuf.t -> partial_user -> unit
+ (** Output a JSON value of type {!partial_user}. *)
-val string_of_guild :
- ?len:int -> guild -> string
- (** Serialize a value of type {!guild}
+val string_of_partial_user :
+ ?len:int -> partial_user -> string
+ (** Serialize a value of type {!partial_user}
into a JSON string.
@param len specifies the initial length
of the buffer used internally.
Default: 1024. *)
-val read_guild :
- Yojson.Safe.lexer_state -> Lexing.lexbuf -> guild
- (** Input JSON data of type {!guild}. *)
+val read_partial_user :
+ Yojson.Safe.lexer_state -> Lexing.lexbuf -> partial_user
+ (** Input JSON data of type {!partial_user}. *)
-val guild_of_string :
- string -> guild
- (** Deserialize JSON data of type {!guild}. *)
+val partial_user_of_string :
+ string -> partial_user
+ (** Deserialize JSON data of type {!partial_user}. *)
val write_activity :
Bi_outbuf.t -> activity -> unit
diff --git a/lib/models/presence_t.ml b/lib/models/presence_t.ml
index 7a26905..940d986 100644
--- a/lib/models/presence_t.ml
+++ b/lib/models/presence_t.ml
@@ -3,17 +3,17 @@
type user = User_t.t
-type role = Role_t.t
+type snowflake = Snowflake_t.t
-type guild = Guild_t.t
+type partial_user = User_t.partial_user
type activity = Activity_t.t
type t = {
- user: user;
- roles: role list;
+ user: partial_user;
+ roles: snowflake list;
game: activity option;
- guild: guild;
+ guild_id: snowflake;
status: string;
activities: activity list
}
diff --git a/lib/models/presence_t.mli b/lib/models/presence_t.mli
index 7a26905..940d986 100644
--- a/lib/models/presence_t.mli
+++ b/lib/models/presence_t.mli
@@ -3,17 +3,17 @@
type user = User_t.t
-type role = Role_t.t
+type snowflake = Snowflake_t.t
-type guild = Guild_t.t
+type partial_user = User_t.partial_user
type activity = Activity_t.t
type t = {
- user: user;
- roles: role list;
+ user: partial_user;
+ roles: snowflake list;
game: activity option;
- guild: guild;
+ guild_id: snowflake;
status: string;
activities: activity list
}
diff --git a/lib/models/user.atd b/lib/models/user.atd
index 73e2ff9..106b3b0 100644
--- a/lib/models/user.atd
+++ b/lib/models/user.atd
@@ -6,4 +6,8 @@ type t = {
discriminator: string;
?avatar: string option;
~bot <ocaml default="false">: bool;
+}
+
+type partial_user = {
+ id: snowflake;
} \ No newline at end of file
diff --git a/lib/models/user_j.ml b/lib/models/user_j.ml
index 6eb93e6..552a20d 100644
--- a/lib/models/user_j.ml
+++ b/lib/models/user_j.ml
@@ -11,6 +11,8 @@ type t = User_t.t = {
bot: bool
}
+type partial_user = User_t.partial_user = { id: snowflake }
+
let write_snowflake = (
Snowflake_j.write_t
)
@@ -366,3 +368,101 @@ let read_t = (
)
let t_of_string s =
read_t (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
+let write_partial_user : _ -> partial_user -> _ = (
+ fun ob x ->
+ Bi_outbuf.add_char ob '{';
+ let is_first = ref true in
+ if !is_first then
+ is_first := false
+ else
+ Bi_outbuf.add_char ob ',';
+ Bi_outbuf.add_string ob "\"id\":";
+ (
+ write_snowflake
+ )
+ ob x.id;
+ Bi_outbuf.add_char ob '}';
+)
+let string_of_partial_user ?(len = 1024) x =
+ let ob = Bi_outbuf.create len in
+ write_partial_user ob x;
+ Bi_outbuf.contents ob
+let read_partial_user = (
+ fun p lb ->
+ Yojson.Safe.read_space p lb;
+ Yojson.Safe.read_lcurl p lb;
+ let field_id = ref (Obj.magic (Sys.opaque_identity 0.0)) in
+ let bits0 = ref 0 in
+ try
+ Yojson.Safe.read_space p lb;
+ Yojson.Safe.read_object_end lb;
+ Yojson.Safe.read_space p lb;
+ let f =
+ fun s pos len ->
+ if pos < 0 || len < 0 || pos + len > String.length s then
+ invalid_arg "out-of-bounds substring position or length";
+ if len = 2 && String.unsafe_get s pos = 'i' && String.unsafe_get s (pos+1) = 'd' then (
+ 0
+ )
+ else (
+ -1
+ )
+ in
+ let i = Yojson.Safe.map_ident p f lb in
+ Atdgen_runtime.Oj_run.read_until_field_value p lb;
+ (
+ match i with
+ | 0 ->
+ field_id := (
+ (
+ read_snowflake
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x1;
+ | _ -> (
+ Yojson.Safe.skip_json p lb
+ )
+ );
+ while true do
+ Yojson.Safe.read_space p lb;
+ Yojson.Safe.read_object_sep p lb;
+ Yojson.Safe.read_space p lb;
+ let f =
+ fun s pos len ->
+ if pos < 0 || len < 0 || pos + len > String.length s then
+ invalid_arg "out-of-bounds substring position or length";
+ if len = 2 && String.unsafe_get s pos = 'i' && String.unsafe_get s (pos+1) = 'd' then (
+ 0
+ )
+ else (
+ -1
+ )
+ in
+ let i = Yojson.Safe.map_ident p f lb in
+ Atdgen_runtime.Oj_run.read_until_field_value p lb;
+ (
+ match i with
+ | 0 ->
+ field_id := (
+ (
+ read_snowflake
+ ) p lb
+ );
+ bits0 := !bits0 lor 0x1;
+ | _ -> (
+ Yojson.Safe.skip_json p lb
+ )
+ );
+ done;
+ assert false;
+ with Yojson.End_of_object -> (
+ if !bits0 <> 0x1 then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "id" |];
+ (
+ {
+ id = !field_id;
+ }
+ : partial_user)
+ )
+)
+let partial_user_of_string s =
+ read_partial_user (Yojson.Safe.init_lexer ()) (Lexing.from_string s)
diff --git a/lib/models/user_j.mli b/lib/models/user_j.mli
index 0a1c6e1..576768e 100644
--- a/lib/models/user_j.mli
+++ b/lib/models/user_j.mli
@@ -11,6 +11,8 @@ type t = User_t.t = {
bot: bool
}
+type partial_user = User_t.partial_user = { id: snowflake }
+
val write_snowflake :
Bi_outbuf.t -> snowflake -> unit
(** Output a JSON value of type {!snowflake}. *)
@@ -51,3 +53,23 @@ val t_of_string :
string -> t
(** Deserialize JSON data of type {!t}. *)
+val write_partial_user :
+ Bi_outbuf.t -> partial_user -> unit
+ (** Output a JSON value of type {!partial_user}. *)
+
+val string_of_partial_user :
+ ?len:int -> partial_user -> string
+ (** Serialize a value of type {!partial_user}
+ into a JSON string.
+ @param len specifies the initial length
+ of the buffer used internally.
+ Default: 1024. *)
+
+val read_partial_user :
+ Yojson.Safe.lexer_state -> Lexing.lexbuf -> partial_user
+ (** Input JSON data of type {!partial_user}. *)
+
+val partial_user_of_string :
+ string -> partial_user
+ (** Deserialize JSON data of type {!partial_user}. *)
+
diff --git a/lib/models/user_t.ml b/lib/models/user_t.ml
index b303aa3..294cf0a 100644
--- a/lib/models/user_t.ml
+++ b/lib/models/user_t.ml
@@ -10,3 +10,5 @@ type t = {
avatar: string option;
bot: bool
}
+
+type partial_user = { id: snowflake }
diff --git a/lib/models/user_t.mli b/lib/models/user_t.mli
index b303aa3..294cf0a 100644
--- a/lib/models/user_t.mli
+++ b/lib/models/user_t.mli
@@ -10,3 +10,5 @@ type t = {
avatar: string option;
bot: bool
}
+
+type partial_user = { id: snowflake }