aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/jid.ml10
1 files changed, 9 insertions, 1 deletions
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 {|