this repo has no description
at main 2.7 kB view raw
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. *)