My agentic slop goes here. Not intended for anyone else!
at main 1.8 kB view raw
1(** JMAP Session and Account Types *) 2 3(** Account object *) 4module Account : sig 5 type t = { 6 name : string; 7 is_personal : bool; 8 is_read_only : bool; 9 account_capabilities : (string * Ezjsonm.value) list; 10 } 11 12 (** Accessors *) 13 val name : t -> string 14 val is_personal : t -> bool 15 val is_read_only : t -> bool 16 val account_capabilities : t -> (string * Ezjsonm.value) list 17 18 (** Constructor *) 19 val v : 20 name:string -> 21 is_personal:bool -> 22 is_read_only:bool -> 23 account_capabilities:(string * Ezjsonm.value) list -> 24 t 25 26 (** Parse from JSON *) 27 val of_json : Ezjsonm.value -> t 28end 29 30(** Session object *) 31type t = { 32 capabilities : (string * Ezjsonm.value) list; 33 accounts : (Jmap_id.t * Account.t) list; 34 primary_accounts : (string * Jmap_id.t) list; 35 username : string; 36 api_url : string; 37 download_url : string; 38 upload_url : string; 39 event_source_url : string; 40 state : string; 41} 42 43(** Accessors *) 44val capabilities : t -> (string * Ezjsonm.value) list 45val accounts : t -> (Jmap_id.t * Account.t) list 46val primary_accounts : t -> (string * Jmap_id.t) list 47val username : t -> string 48val api_url : t -> string 49val download_url : t -> string 50val upload_url : t -> string 51val event_source_url : t -> string 52val state : t -> string 53 54(** Constructor *) 55val v : 56 capabilities:(string * Ezjsonm.value) list -> 57 accounts:(Jmap_id.t * Account.t) list -> 58 primary_accounts:(string * Jmap_id.t) list -> 59 username:string -> 60 api_url:string -> 61 download_url:string -> 62 upload_url:string -> 63 event_source_url:string -> 64 state:string -> 65 t 66 67(** Parser submodule *) 68module Parser : sig 69 (** Parse session from JSON *) 70 val of_json : Ezjsonm.value -> t 71 72 val of_string : string -> t 73 74 val of_channel : in_channel -> t 75end