From 944c85167f284b28157e8a314e9eb99e26995a29 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Mon, 31 Aug 2015 18:39:53 +0200 Subject: [PATCH] add `CCDeque.clear` --- src/data/CCDeque.ml | 6 ++++++ src/data/CCDeque.mli | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/src/data/CCDeque.ml b/src/data/CCDeque.ml index dd895288..c5a1f90e 100644 --- a/src/data/CCDeque.ml +++ b/src/data/CCDeque.ml @@ -64,6 +64,12 @@ let create () = let rec cur = { cell=Zero; prev=cur; next=cur } in { cur; size=0 } +let clear q = + let rec cur = { cell=Zero; prev=cur; next=cur } in + q.cur <- cur; + q.size <- 0; + () + let incr_size_ d = d.size <- d.size + 1 let decr_size_ d = d.size <- d.size - 1 diff --git a/src/data/CCDeque.mli b/src/data/CCDeque.mli index be54d7fe..26163e43 100644 --- a/src/data/CCDeque.mli +++ b/src/data/CCDeque.mli @@ -33,6 +33,10 @@ exception Empty val create : unit -> 'a t (** New deque *) +val clear : _ t -> unit +(** Remove all elements + @since NEXT_RELEASE *) + val is_empty : 'a t -> bool (** Is the deque empty? *)