package caqti-lwt
Lwt support for Caqti
Install
Dune Dependency
Authors
Maintainers
Sources
caqti-v2.1.1.tbz
sha256=483a535f41e2641917fc1832ce4ad15ffc3f4e8283b1b3018a2617349583090a
sha512=6a1222c0c55cb16a9d409980f9f2400340689b87e21aafed2d7459fd7feaeb109c2dfaf77f55f8422fbb7d3772342565ced7fed78a7b77af5aedab5bfd5ae882
doc/src/caqti-lwt/caqti_lwt.ml.html
Source file caqti_lwt.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
(* Copyright (C) 2022--2023 Petter A. Urkedal <paurkedal@gmail.com> * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at your * option) any later version, with the LGPL-3.0 Linking Exception. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * * You should have received a copy of the GNU Lesser General Public License * and the LGPL-3.0 Linking Exception along with this library. If not, see * <http://www.gnu.org/licenses/> and <https://spdx.org>, respectively. *) open Caqti_platform module Fiber = struct type 'a t = 'a Lwt.t module Infix = struct let (>>=) = Lwt.Infix.(>>=) let (>|=) = Lwt.Infix.(>|=) end open Infix let return = Lwt.return let catch = Lwt.catch let finally = Lwt.finalize let cleanup f g = Lwt.catch f (fun exn -> g () >>= fun () -> Lwt.fail exn) end module Stream = Caqti_platform.Stream.Make (Fiber) module Switch = Caqti_platform.Switch.Make (Fiber) module System_core = struct module Fiber = Fiber module Stream = Stream module Switch = Switch let async ~sw:_ = Lwt.async module Semaphore = struct type t = unit Lwt_mvar.t let create = Lwt_mvar.create_empty let release v = Lwt.async (Lwt_mvar.put v) let acquire = Lwt_mvar.take end module Log = struct type 'a log = 'a Logs_lwt.log let err ?(src = Logging.default_log_src) = Logs_lwt.err ~src let warn ?(src = Logging.default_log_src) = Logs_lwt.warn ~src let info ?(src = Logging.default_log_src) = Logs_lwt.info ~src let debug ?(src = Logging.default_log_src) = Logs_lwt.debug ~src end (* Cf. pgx_lwt. *) module Sequencer = struct type 'a t = 'a * Lwt_mutex.t let create m = (m, Lwt_mutex.create ()) let enqueue (m, mutex) f = Lwt_mutex.with_lock mutex (fun () -> f m) end end module type CONNECTION = Caqti_connection_sig.S with type 'a fiber := 'a Lwt.t and type ('a, 'e) stream := ('a, 'e) Stream.t type connection = (module CONNECTION) let or_fail = function | Ok x -> Lwt.return x | Error (#Caqti_error.t as err) -> Lwt.fail (Caqti_error.Exn err)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>