• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

formalsec / smtml / 290

28 Feb 2025 09:44AM UTC coverage: 47.592% (-0.07%) from 47.662%
290

push

github

filipeom
Update CHANGES.md

1591 of 3343 relevant lines covered (47.59%)

32.48 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

34.62
/src/cache.ml
1
(* SPDX-License-Identifier: MIT *)
2
(* Copyright (C) 2023-2024 formalsec *)
3
(* Written by the Smtml programmers *)
4

5
include Cache_intf
6

7
module Strong : S = struct
8
  include Hashtbl.Make (Expr.Set)
9

10
  type nonrec !'a t =
11
    { data : 'a t
12
    ; hits : int Atomic.t
13
    ; misses : int Atomic.t
14
    }
15

16
  let hits { hits; _ } = Atomic.get hits
2✔
17

18
  let misses { misses; _ } = Atomic.get misses
1✔
19

20
  let create sz =
21
    { data = create sz; hits = Atomic.make 0; misses = Atomic.make 0 }
1✔
22

23
  let reset { data; _ } = reset data
×
24

25
  let copy { data; hits; misses } =
26
    { data = copy data
×
27
    ; hits = Atomic.(make (get hits))
×
28
    ; misses = Atomic.(make (get misses))
×
29
    }
30

31
  let add { data; _ } k v = add data k v
1✔
32

33
  let remove { data; _ } k = remove data k
×
34

35
  let find_opt { data; hits; misses } k =
36
    match find_opt data k with
3✔
37
    | Some _ as v ->
2✔
38
      Atomic.incr hits;
39
      v
2✔
40
    | None as v ->
1✔
41
      Atomic.incr misses;
42
      v
1✔
43

44
  let replace { data; _ } k v = replace data k v
×
45

46
  let mem { data; _ } k = mem data k
×
47

48
  let iter f { data; _ } = iter f data
×
49

50
  let filter_map_inplace f { data; _ } = filter_map_inplace f data
×
51

52
  let fold f { data; _ } acc = fold f data acc
×
53

54
  let length { data; _ } = length data
×
55

56
  let stats { data; _ } = stats data
×
57

58
  let to_seq { data; _ } = to_seq data
×
59

60
  let to_seq_keys { data; _ } = to_seq_keys data
×
61

62
  let to_seq_values { data; _ } = to_seq_values data
×
63

64
  let add_seq { data; _ } seq = add_seq data seq
×
65

66
  let replace_seq { data; _ } seq = replace_seq data seq
×
67
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc