From fe1f4f653acde082dc6ecdaa85628444c0caff1d Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Sat, 25 Apr 2015 12:56:00 +0200 Subject: [PATCH] some infix operators for CCUnix --- src/unix/CCUnix.ml | 8 ++++++++ src/unix/CCUnix.mli | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/unix/CCUnix.ml b/src/unix/CCUnix.ml index 6d51723c..9f498225 100644 --- a/src/unix/CCUnix.ml +++ b/src/unix/CCUnix.ml @@ -146,3 +146,11 @@ let async_call ?(env=[||]) cmd = method wait = Unix.close_process_full (oc, ic, errc) end ) + +module Infix = struct + let (?|) fmt = call fmt + + let (?|&) fmt = async_call fmt +end + +include Infix diff --git a/src/unix/CCUnix.mli b/src/unix/CCUnix.mli index fcadd8ec..77c5cf80 100644 --- a/src/unix/CCUnix.mli +++ b/src/unix/CCUnix.mli @@ -96,4 +96,16 @@ val async_call : ?env:string array -> to die. Channels can be closed independently. @since NEXT_RELEASE *) +module Infix : sig + val (?|) : ('a, Buffer.t, unit, call_result) format4 -> 'a + (** Infix version of {!call} + @since NEXT_RELEASE *) + + val (?|&) : ('a, Buffer.t, unit, async_call_result) format4 -> 'a + (** Infix version of {!async_call} + @since NEXT_RELEASE *) +end + +include module type of Infix +