package gitlab-jsoo
Library
Module
Module type
Parameter
Class
Class type
All API requests are bound through this monad which encapsulates an Lwt cooperative thread and includes some state which may be set via API
functions.
val return : 'a -> 'a t
return x
is the value x
wrapped in a state-sensitive Lwt thread.
bind m f
is the eventual value of f
applied to the contents of m
. Its argument order is designed for currying.
map f m
is bind
m (fun x -> return (f x))
. Its argument order is designed for currying.
val (>>~) : 'a Response.t t -> ('a -> 'b t) -> 'b t
m >>~ f
is m >|= {!Response.value} >>= f
.
val (>|~) : 'a Response.t t -> ('a -> 'b) -> 'b t
m >|~ f
is m >|= {!Response.value} >|= f
.
catch try with
is the result of trying try
. If try
succeeds, its result is returned. If try
raises an exception, with
is applied to the exception and the result of with
is returned.
val fail : exn -> 'a t
fail exn
raises exception exn
inside of the monad.
val run : 'a t -> 'a Lwt.t
run m
is the Lwt thread corresponding to the sequence of API actions represented by m
. Once a t
has been run
, any GitLab API state such as associated default security tokens or declared user agent string will not be available in subsequently bound functions.
val embed : 'a Lwt.t -> 'a t
embed lwt
is an Lwt thread lifted into the GitLab API monad. Its monadic state will be inherited from any monadic values bound before it.