diff options
-rw-r--r-- | lib/jid.ml | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -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 {| |