package caqti-lwt
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Lwt support for Caqti
Install
dune-project
Dependency
Authors
Maintainers
Sources
caqti-v2.2.4.tbz
sha256=b8ea432820154ec095132c4f7b244b06cd8553e0b2035185b844d9c4f30af8bb
sha512=b7e3ad8e6a9b587db2d517e15cd42df2945148f9223b2fa6f4bc2bcdd2709d53549cca4b65e54511d22466e4c9aa7f0b9c17305a07505519d8bf81d95de629b8
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 77 78(* Copyright (C) 2022--2025 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 Mutex = Lwt_mutex module Condition = struct type t = unit Lwt_condition.t let create = Lwt_condition.create let wait c mutex = Lwt_condition.wait ~mutex c let signal c = Lwt_condition.signal c () 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)"
>