(* Auto-generated from "member.atd" *) [@@@ocaml.warning "-27-32-35-39"] type user = User_t.t type snowflake = Snowflake_t.t type t = Member_t.t = { 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; deaf: bool; mute: bool } let write_user = ( User_j.write_t ) let string_of_user ?(len = 1024) x = let ob = Bi_outbuf.create len in write_user ob x; Bi_outbuf.contents ob let read_user = ( User_j.read_t ) let user_of_string s = read_user (Yojson.Safe.init_lexer ()) (Lexing.from_string s) let write_snowflake = ( Snowflake_j.write_t ) let string_of_snowflake ?(len = 1024) x = let ob = Bi_outbuf.create len in write_snowflake ob x; Bi_outbuf.contents ob let read_snowflake = ( Snowflake_j.read_t ) let snowflake_of_string s = read_snowflake (Yojson.Safe.init_lexer ()) (Lexing.from_string s) let write__2 = ( Atdgen_runtime.Oj_run.write_list ( write_snowflake ) ) let string_of__2 ?(len = 1024) x = let ob = Bi_outbuf.create len in write__2 ob x; Bi_outbuf.contents ob let read__2 = ( Atdgen_runtime.Oj_run.read_list ( read_snowflake ) ) let _2_of_string s = read__2 (Yojson.Safe.init_lexer ()) (Lexing.from_string s) let write__1 = ( Atdgen_runtime.Oj_run.write_option ( Yojson.Safe.write_string ) ) let string_of__1 ?(len = 1024) x = let ob = Bi_outbuf.create len in write__1 ob x; Bi_outbuf.contents ob 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 _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 '{'; 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; 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 = let ob = Bi_outbuf.create len in write_t ob x; Bi_outbuf.contents ob let read_t = ( 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 field_user = 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 ) ) | 'u' -> ( if String.unsafe_get s (pos+1) = 's' && String.unsafe_get s (pos+2) = 'e' && String.unsafe_get s (pos+3) = 'r' then ( 5 ) 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; | 5 -> field_user := ( ( read_user ) p lb ); bits0 := !bits0 lor 0x10; | _ -> ( 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 ) ) | 'u' -> ( if String.unsafe_get s (pos+1) = 's' && String.unsafe_get s (pos+2) = 'e' && String.unsafe_get s (pos+3) = 'r' then ( 5 ) 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; | 5 -> field_user := ( ( read_user ) p lb ); bits0 := !bits0 lor 0x10; | _ -> ( Yojson.Safe.skip_json p lb ) ); done; assert false; with Yojson.End_of_object -> ( if !bits0 <> 0x1f then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "roles"; "joined_at"; "deaf"; "mute"; "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)