File: stdcompat__weak.ml.in

package info (click to toggle)
ocaml-stdcompat 20~git20240529-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,540 kB
  • sloc: ml: 34,099; sh: 861; makefile: 249
file content (50 lines) | stat: -rw-r--r-- 980 bytes parent folder | download | duplicates (4)
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
type 'a t = 'a Weak.t

let create = Weak.create

let length = Weak.length

let set = Weak.set

let get = Weak.get

let get_copy = Weak.get_copy

let check = Weak.check

let fill = Weak.fill

let blit = Weak.blit

@BEGIN_FROM_4_05_0@
module type S = Weak.S

module Make = Weak.Make
@END_FROM_4_05_0@

@BEGIN_BEFORE_4_05_0@
module type S = sig
  type data
  type t
  val create : int -> t
  val clear : t -> unit
  val merge : t -> data -> data
  val add : t -> data -> unit
  val remove : t -> data -> unit
  val find : t -> data -> data
  val find_opt : t -> data -> data option
  val find_all : t -> data -> data list
  val mem : t -> data -> bool
  val iter : (data -> unit) -> t -> unit
  val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
  val count : t -> int
  val stats : t -> int * int * int * int * int * int
end

module Make (H : Hashtbl.HashedType) = struct
  include Weak.Make (H)

  let find_opt t d =
    Stdcompat__tools.option_find (find t) d
end
@END_BEFORE_4_05_0@