From f8bdceda14f5554e59a199139eda3d4ed0be667e Mon Sep 17 00:00:00 2001 From: Fardale Date: Mon, 28 Oct 2019 16:28:20 +0100 Subject: [PATCH] add `CCPair.to_string` --- src/core/CCPair.ml | 2 ++ src/core/CCPair.mli | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/core/CCPair.ml b/src/core/CCPair.ml index 80884e20..ea1a9a2c 100644 --- a/src/core/CCPair.ml +++ b/src/core/CCPair.ml @@ -42,6 +42,8 @@ let compare f g (x1,y1) (x2,y2) = let c = f x1 x2 in if c <> 0 then c else g y1 y2 +let to_string ?(sep=", ") a_to_string b_to_string (x,y) = + Printf.sprintf "%s%s%s" (a_to_string x) sep (b_to_string y) type 'a printer = Format.formatter -> 'a -> unit diff --git a/src/core/CCPair.mli b/src/core/CCPair.mli index 28c61577..bd8cedc8 100644 --- a/src/core/CCPair.mli +++ b/src/core/CCPair.mli @@ -67,6 +67,10 @@ val equal : ('a -> 'a -> bool) -> ('b -> 'b -> bool) -> ('a * 'b) -> ('a * 'b) - val compare : ('a -> 'a -> int) -> ('b -> 'b -> int) -> ('a * 'b) -> ('a * 'b) -> int +val to_string : ?sep:string -> ('a -> string) -> ('b -> string) -> ('a * 'b) -> string +(** Print tuple in a string + @since NEXT_RELEASE *) + type 'a printer = Format.formatter -> 'a -> unit val pp : ?sep:string -> 'a printer -> 'b printer -> ('a * 'b) printer