From b3a527055fd638c3bf819f981a27ecd74721268b Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Tue, 11 Aug 2015 23:13:09 +0200 Subject: [PATCH] add `CCDeque.print` --- src/data/CCDeque.ml | 13 +++++++++++++ src/data/CCDeque.mli | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/src/data/CCDeque.ml b/src/data/CCDeque.ml index 48d05e4d..47e46b43 100644 --- a/src/data/CCDeque.ml +++ b/src/data/CCDeque.ml @@ -134,3 +134,16 @@ let copy d = let d' = create () in iter (fun x -> push_back d' x) d; d' + +type 'a printer = Format.formatter -> 'a -> unit + +let print pp_x out d = + let first = ref true in + Format.fprintf out "@[deque {"; + iter + (fun x -> + if !first then first:= false else Format.fprintf out ";@ "; + pp_x out x + ) d; + Format.fprintf out "}@]" + diff --git a/src/data/CCDeque.mli b/src/data/CCDeque.mli index 046e7148..eaed962d 100644 --- a/src/data/CCDeque.mli +++ b/src/data/CCDeque.mli @@ -66,3 +66,8 @@ val to_seq : 'a t -> 'a sequence val copy : 'a t -> 'a t (** Fresh copy *) + +type 'a printer = Format.formatter -> 'a -> unit + +val print : 'a printer -> 'a t printer + (** @since NEXT_RELEASE *)