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 +