Warning: Reason support is experimental. We are looking for beta-tester and contributors.

Module Lwt_react.E

module E : sig..end

include React.E


Lwt-specific utilities


val with_finaliser : 
  (unit -> unit) -> 'a Lwt_react.event -> 'a Lwt_react.event

with_finaliser f e returns an event e' which behave as e, except that f is called when e' is garbage collected.

val next : 'a Lwt_react.event -> 'a Lwt.t

next e returns the next occurrence of e

val limit : 
  (unit -> unit Lwt.t) -> 'a Lwt_react.event -> 'a Lwt_react.event

limit f e limits the rate of e with f.

For example, to limit the rate of an event to 1 per second you can use: limit (fun () -> Lwt_unix.sleep 1.0) event.

val from : (unit -> 'a Lwt.t) -> 'a Lwt_react.event

from f creates an event which occurs each f () returns a value. If f raises an exception, the event is just stopped.

val to_stream : 'a Lwt_react.event -> 'a Lwt_stream.t

Creates a stream holding all values occurring on the given event

val of_stream : 'a Lwt_stream.t -> 'a Lwt_react.event

of_stream stream creates an event which occurs each time a value is available on the stream.

val delay : 'a Lwt_react.event Lwt.t -> 'a Lwt_react.event

delay thread is an event which does not occurs until thread returns. Then it behaves as the event returned by thread.

val keep : 'a Lwt_react.event -> unit

keep e keeps a reference to e so it will never be garbage collected.


Threaded versions of React transformation functions



The following functions behave as their React counterpart, except that they takes functions that may yield.

As usual the _s suffix is used when calls are serialized, and the _p suffix is used when they are not.

Note that *_p functions may not preserve event order.

val app_s : 
  ('a -> 'b Lwt.t) Lwt_react.event ->
  'a Lwt_react.event -> 'b Lwt_react.event
val app_p : 
  ('a -> 'b Lwt.t) Lwt_react.event ->
  'a Lwt_react.event -> 'b Lwt_react.event
val map_s : ('a -> 'b Lwt.t) -> 'a Lwt_react.event -> 'b Lwt_react.event
val map_p : ('a -> 'b Lwt.t) -> 'a Lwt_react.event -> 'b Lwt_react.event
val filter_s : 
  ('a -> bool Lwt.t) -> 'a Lwt_react.event -> 'a Lwt_react.event
val filter_p : 
  ('a -> bool Lwt.t) -> 'a Lwt_react.event -> 'a Lwt_react.event
val fmap_s : 
  ('a -> 'b option Lwt.t) -> 'a Lwt_react.event -> 'b Lwt_react.event
val fmap_p : 
  ('a -> 'b option Lwt.t) -> 'a Lwt_react.event -> 'b Lwt_react.event
val diff_s : 
  ('a -> 'a -> 'b Lwt.t) -> 'a Lwt_react.event -> 'b Lwt_react.event
val accum_s : ('a -> 'a Lwt.t) Lwt_react.event -> 'a -> 'a Lwt_react.event
val fold_s : 
  ('a -> 'b -> 'a Lwt.t) ->
  'a -> 'b Lwt_react.event -> 'a Lwt_react.event
val merge_s : 
  ('a -> 'b -> 'a Lwt.t) ->
  'a -> 'b Lwt_react.event list -> 'a Lwt_react.event
val run_s : 'a Lwt.t Lwt_react.event -> 'a Lwt_react.event
val run_p : 'a Lwt.t Lwt_react.event -> 'a Lwt_react.event