package progress

  1. Overview
  2. Docs
User-definable progress bars

Install

dune-project
 Dependency

Authors

Maintainers

Sources

progress-0.5.0.tbz
sha256=7f87f0597363928c45ba859ae5a1430f6aa3c29e251ff1a53cf786ed0e045961
sha512=45dee4fe2ae0b7fc3ca675f6e854d738873eb608ef9155ea5d7edac4639c183ae1f512847a1b43bdfc1f4c459e7d5b44d03ee809455797e680f890b33d531367

doc/src/progress.vector/pvector.ml.html

Source file pvector.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
# 1 "src/progress/engine/pvector.dynarray.ml"
include Dynarray

let iter ~f t = iter f t

let iteri_from ~f i t =
  for i = i to length t - 1 do
    f i (get t i)
  done

let of_list ~dummy:_ l = Dynarray.of_list l

let rec find_map_from i t ~f =
  if i >= length t then None
  else
    let a = get t i in
    match f a with Some _ as some -> some | None -> find_map_from (i + 1) t ~f

let find_map t ~f = find_map_from 0 t ~f

let insert t k v =
  Dynarray.add_last t v (* Dummy insertion to expand *);
  for i = Dynarray.length t - 1 downto k + 1 do
    Dynarray.set t i (Dynarray.get t (pred i))
  done;
  Dynarray.set t k v

let remove (type a) (t : a t) k =
  for i = k to Dynarray.length t - 2 do
    Dynarray.set t i (Dynarray.get t (succ i))
  done;
  ignore (Dynarray.pop_last t : a)

let get_exn = get
let get = `shadowed