From 9d2e9c106aafa53e8d877984b6c2de4b64e3df9f Mon Sep 17 00:00:00 2001 From: Clombrong Date: Wed, 2 Jul 2025 00:56:10 +0200 Subject: fix(jid): implement show manually instead of using derivers it translated unicode into the string repr --- lib/jid.ml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/jid.ml b/lib/jid.ml index 47de37d..f51114d 100644 --- a/lib/jid.ml +++ b/lib/jid.ml @@ -2,7 +2,7 @@ type t = { localpart : string option; domainpart : string; resourcepart : string option; - } [@@deriving show { with_path = false }] + } exception InvalidUTF8 @@ -52,6 +52,14 @@ let of_string (jid : string) : t = resourcepart = map (fun i -> sub jid (i + 1) (length jid - i - 1)) domain_end; } +let show ({ localpart; domainpart; resourcepart } : t) = + let show_opt = Option.fold ~none:"None" ~some:(Format.sprintf {|Some "%s"|}) + in Printf.sprintf +{|{ localpart = %s; + domainpart = "%s"; + resourcepart = %s }|} + (show_opt localpart) domainpart (show_opt resourcepart) + let%expect_test {|A "bare JID"|} = "juliet@example.com" |> of_string |> show |> print_string; [%expect {| -- cgit v1.2.3