package kappa-library
Public internals of the Kappa tool suite. Use this package to use kappa as a lib
Install
Dune Dependency
Authors
Maintainers
Sources
v4.1.3.tar.gz
md5=1c9a8a0d79f085757817f90834e166f5
sha512=13ac40442940ba6e72d7dc5bf952e67443872f7bff63e9c76a3a699a6904c88696047fe04519b7ec6546371642f6ee7b0983117be302694aca15500b0df40de3
doc/src/kappa-library.generic/circular_buffers.ml.html
Source file circular_buffers.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
type 'a t = { size: int; default: 'a; mutable start: int; mutable final: int; content: 'a array; } let create i default = let size = max i 2 in { size; default; start = 0; final = 0; content = Array.make size default } let succ i t = if i = t.size - 1 then 0 else succ i let full t = succ t.final t = t.start let free_one t = t.start <- succ t.start t let add x t = let () = if full t then free_one t in let () = t.content.(t.final) <- x in let () = t.final <- succ t.final t in t let iter f t = let rec aux i = if i <> t.final then ( let () = f t.content.(i) in aux (succ i t) ) in aux t.start let clean t = let rec aux k = if k = t.size then t else ( let () = t.content.(k) <- t.default in aux (k + 1) ) in aux 0
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>