this repo has no description
1(*---------------------------------------------------------------------------
2 Copyright (c) 2025 Anil Madhavapeddy. All rights reserved.
3 SPDX-License-Identifier: ISC
4 ---------------------------------------------------------------------------*)
5
6(** JMAP JSON codec for Eio
7
8 Low-level encoding and decoding of JMAP messages using jsont and bytesrw. *)
9
10(** {1 Request Encoding} *)
11
12val encode_request :
13 ?format:Jsont.format ->
14 Jmap_proto.Request.t ->
15 (string, Jsont.Error.t) result
16(** [encode_request ?format request] encodes a JMAP request to a JSON string.
17
18 @param format The JSON formatting style. Defaults to {!Jsont.Minify}. *)
19
20val encode_request_exn :
21 ?format:Jsont.format ->
22 Jmap_proto.Request.t ->
23 string
24(** [encode_request_exn ?format request] is like {!encode_request} but raises
25 on encoding errors. *)
26
27(** {1 Response Decoding} *)
28
29val decode_response :
30 ?locs:bool ->
31 string ->
32 (Jmap_proto.Response.t, Jsont.Error.t) result
33(** [decode_response ?locs json] decodes a JMAP response from a JSON string.
34
35 @param locs If [true], location information is preserved for error messages.
36 Defaults to [false]. *)
37
38val decode_response_exn :
39 ?locs:bool ->
40 string ->
41 Jmap_proto.Response.t
42(** [decode_response_exn ?locs json] is like {!decode_response} but raises
43 on decoding errors. *)
44
45(** {1 Session Decoding} *)
46
47val decode_session :
48 ?locs:bool ->
49 string ->
50 (Jmap_proto.Session.t, Jsont.Error.t) result
51(** [decode_session ?locs json] decodes a JMAP session from a JSON string.
52
53 @param locs If [true], location information is preserved for error messages.
54 Defaults to [false]. *)
55
56val decode_session_exn :
57 ?locs:bool ->
58 string ->
59 Jmap_proto.Session.t
60(** [decode_session_exn ?locs json] is like {!decode_session} but raises
61 on decoding errors. *)
62
63(** {1 Blob Upload Response Decoding} *)
64
65val decode_upload_response :
66 ?locs:bool ->
67 string ->
68 (Jmap_proto.Blob.upload_response, Jsont.Error.t) result
69(** [decode_upload_response ?locs json] decodes a blob upload response. *)
70
71val decode_upload_response_exn :
72 ?locs:bool ->
73 string ->
74 Jmap_proto.Blob.upload_response
75(** [decode_upload_response_exn ?locs json] is like {!decode_upload_response}
76 but raises on decoding errors. *)
77
78(** {1 Generic Encoding/Decoding} *)
79
80val encode :
81 ?format:Jsont.format ->
82 'a Jsont.t ->
83 'a ->
84 (string, Jsont.Error.t) result
85(** [encode ?format jsont value] encodes any value using its jsont codec. *)
86
87val decode :
88 ?locs:bool ->
89 'a Jsont.t ->
90 string ->
91 ('a, Jsont.Error.t) result
92(** [decode ?locs jsont json] decodes any value using its jsont codec. *)