diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/jid.ml | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -69,6 +69,11 @@ let of_string (jid : string) : t = resourcepart = map (fun i -> sub jid (i + 1) (length jid - i - 1)) domain_end; } +let to_string ({ localpart; domainpart; resourcepart } : t) = + let local = Option.fold ~none:"" ~some:(fun l -> l ^ "@") localpart + and resource = Option.fold ~none:"" ~some:(fun r -> "/" ^ r) resourcepart + in local ^ domainpart ^ resource + let show ({ localpart; domainpart; resourcepart } : t) = let show_opt = Option.fold ~none:"None" ~some:(Format.sprintf {|Some "%s"|}) in Printf.sprintf @@ -184,9 +189,3 @@ let%expect_test {|A domainpart followed by a resourcepart that contains an "at" { localpart = None; domainpart = "a.example.com"; resourcepart = Some "b@example.net" } |}] - - -let to_string ({ localpart; domainpart; resourcepart } : t) = - let local = Option.fold ~none:"" ~some:(fun l -> l ^ "@") localpart - and resource = Option.fold ~none:"" ~some:(fun r -> "/" ^ r) resourcepart - in local ^ domainpart ^ resource |