package capnp-rpc

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file rO_array.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
type 'a t = 'a array

let init = Array.init
let of_list = Array.of_list
let get_exn t i = t.(i)
let length = Array.length
let map = Array.map
let mapi = Array.mapi
let iter = Array.iter
let iteri = Array.iteri
let fold_left = Array.fold_left

let get ~oob t i =
  if i < 0 || i >= Array.length t then oob
  else Array.get t i

let find fn t =
  let rec loop i =
    if i = Array.length t then None
    else (
      let item = t.(i) in
      if fn item then Some item
      else loop (i + 1)
    )
  in
  loop 0

let empty = [| |]
let pp x = Fmt.(brackets (array ~sep:(const string ", ") x))

let equal eq a b =
  let l = Array.length a in
  if l <> Array.length b then false
  else (
    let rec loop i =
      if i = 0 then true
      else (
        let i = i - 1 in
        eq a.(i) b.(i) && loop i
      )
    in
    loop l
  )

let release t v =
  for i = 0 to Array.length t - 1 do
    t.(i) <- v;
  done
OCaml

Innovation. Community. Security.