package caqti
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Unified interface to relational database libraries
Install
dune-project
Dependency
Authors
Maintainers
Sources
caqti-v1.6.0.tbz
sha256=1bf0c0d60547033c10d6148cf5297b25ab66c9a2832b680329df2f3816bc674d
sha512=0b03bd1788d99bbac59679338768a5633ec473346eed333fca4c104bc88f04c24e138af2228fc20dcf295b7106778328d228643ae8235a3f722f54cc69919295
doc/src/caqti/caqti_driver_lib.ml.html
Source file caqti_driver_lib.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(* Copyright (C) 2017--2019 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 OCaml static compilation 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 * along with this library. If not, see <http://www.gnu.org/licenses/>. *) open Caqti_common_priv let linear_param_length templ = let rec loop = function | Caqti_query.L _ -> ident | Caqti_query.Q _ -> succ | Caqti_query.P _ -> succ | Caqti_query.S frags -> List.fold loop frags in loop templ 0 let nonlinear_param_length templ = let rec loop = function | Caqti_query.L _ -> ident | Caqti_query.Q _ -> ident | Caqti_query.P n -> max (n + 1) | Caqti_query.S frags -> List.fold loop frags in loop templ 0 let linear_param_order templ = let a = Array.make (nonlinear_param_length templ) [] in let rec loop = function | Caqti_query.L _ -> ident | Caqti_query.Q s -> fun (j, quotes) -> (j + 1, (j, s) :: quotes) | Caqti_query.P i -> fun (j, quotes) -> a.(i) <- j :: a.(i); (j + 1, quotes) | Caqti_query.S frags -> List.fold loop frags in let _, quotes = loop templ (0, []) in (Array.to_list a, List.rev quotes) let linear_query_string templ = let buf = Buffer.create 64 in let rec loop = function | Caqti_query.L s -> Buffer.add_string buf s | Caqti_query.Q _ | Caqti_query.P _ -> Buffer.add_char buf '?' | Caqti_query.S frags -> List.iter loop frags in loop templ; Buffer.contents buf
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>