mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-06 03:05:30 -05:00
breaking: fut: only have module Infix
we keep `Infix_local` as a deprecated alias to it for now
This commit is contained in:
parent
d4e5e811bb
commit
59ae1068fd
2 changed files with 22 additions and 46 deletions
37
src/fut.ml
37
src/fut.ml
|
|
@ -411,41 +411,14 @@ let await (fut : 'a t) : 'a =
|
||||||
|
|
||||||
[@@@endif]
|
[@@@endif]
|
||||||
|
|
||||||
module type INFIX = sig
|
module Infix = struct
|
||||||
val ( >|= ) : 'a t -> ('a -> 'b) -> 'b t
|
let[@inline] ( >|= ) x f = map ~f x
|
||||||
val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t
|
let[@inline] ( >>= ) x f = bind ~f x
|
||||||
val ( let+ ) : 'a t -> ('a -> 'b) -> 'b t
|
|
||||||
val ( and+ ) : 'a t -> 'b t -> ('a * 'b) t
|
|
||||||
val ( let* ) : 'a t -> ('a -> 'b t) -> 'b t
|
|
||||||
val ( and* ) : 'a t -> 'b t -> ('a * 'b) t
|
|
||||||
end
|
|
||||||
|
|
||||||
module Infix_ (X : sig
|
|
||||||
val pool : Runner.t option
|
|
||||||
end) : INFIX = struct
|
|
||||||
let[@inline] ( >|= ) x f = map ?on:X.pool ~f x
|
|
||||||
let[@inline] ( >>= ) x f = bind ?on:X.pool ~f x
|
|
||||||
let ( let+ ) = ( >|= )
|
let ( let+ ) = ( >|= )
|
||||||
let ( let* ) = ( >>= )
|
let ( let* ) = ( >>= )
|
||||||
let ( and+ ) = both
|
let ( and+ ) = both
|
||||||
let ( and* ) = both
|
let ( and* ) = both
|
||||||
end
|
end
|
||||||
|
|
||||||
module Infix_local = Infix_ (struct
|
include Infix
|
||||||
let pool = None
|
module Infix_local = Infix [@@deprecated "use Infix"]
|
||||||
end)
|
|
||||||
|
|
||||||
include Infix_local
|
|
||||||
|
|
||||||
module Infix (X : sig
|
|
||||||
val pool : Runner.t
|
|
||||||
end) =
|
|
||||||
Infix_ (struct
|
|
||||||
let pool = Some X.pool
|
|
||||||
end)
|
|
||||||
|
|
||||||
let[@inline] infix pool : (module INFIX) =
|
|
||||||
let module M = Infix (struct
|
|
||||||
let pool = pool
|
|
||||||
end) in
|
|
||||||
(module M)
|
|
||||||
|
|
|
||||||
31
src/fut.mli
31
src/fut.mli
|
|
@ -209,7 +209,19 @@ val wait_block : 'a t -> 'a or_error
|
||||||
val wait_block_exn : 'a t -> 'a
|
val wait_block_exn : 'a t -> 'a
|
||||||
(** Same as {!wait_block} but re-raises the exception if the future failed. *)
|
(** Same as {!wait_block} but re-raises the exception if the future failed. *)
|
||||||
|
|
||||||
module type INFIX = sig
|
(** {2 Infix operators}
|
||||||
|
|
||||||
|
These combinators run on either the current pool (if present),
|
||||||
|
or on the same thread that just fulfilled the previous future
|
||||||
|
if not.
|
||||||
|
|
||||||
|
They were previously present as [module Infix_local] and [val infix],
|
||||||
|
but are now simplified.
|
||||||
|
|
||||||
|
@since NEXT_RELEASE *)
|
||||||
|
|
||||||
|
(** @since NEXT_RELEASE *)
|
||||||
|
module Infix : sig
|
||||||
val ( >|= ) : 'a t -> ('a -> 'b) -> 'b t
|
val ( >|= ) : 'a t -> ('a -> 'b) -> 'b t
|
||||||
val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t
|
val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t
|
||||||
val ( let+ ) : 'a t -> ('a -> 'b) -> 'b t
|
val ( let+ ) : 'a t -> ('a -> 'b) -> 'b t
|
||||||
|
|
@ -218,17 +230,8 @@ module type INFIX = sig
|
||||||
val ( and* ) : 'a t -> 'b t -> ('a * 'b) t
|
val ( and* ) : 'a t -> 'b t -> ('a * 'b) t
|
||||||
end
|
end
|
||||||
|
|
||||||
module Infix_local : INFIX
|
include module type of Infix
|
||||||
(** Operators that run on the same thread as the first future. *)
|
|
||||||
|
|
||||||
include INFIX
|
module Infix_local = Infix
|
||||||
|
[@@deprecated "Use Infix"]
|
||||||
(** Make infix combinators, with intermediate computations running on the given pool. *)
|
(** @deprecated use Infix instead *)
|
||||||
module Infix (_ : sig
|
|
||||||
val pool : Runner.t
|
|
||||||
end) : INFIX
|
|
||||||
|
|
||||||
val infix : Runner.t -> (module INFIX)
|
|
||||||
(** [infix runner] makes a new infix module with intermediate computations
|
|
||||||
running on the given runner..
|
|
||||||
@since 0.2 *)
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue