Source file v0_block_hash.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
include Tezos_crypto.Hashed.Block_hash
module Set = struct
include Stdlib.Set.Make (Tezos_crypto.Hashed.Block_hash)
let encoding =
Data_encoding.conv
elements
(fun l -> List.fold_left (fun m x -> add x m) empty l)
Data_encoding.(list Tezos_crypto.Hashed.Block_hash.encoding)
end
module Map = struct
include Stdlib.Map.Make (Tezos_crypto.Hashed.Block_hash)
let encoding arg_encoding =
Data_encoding.conv
bindings
(fun l -> List.fold_left (fun m (k, v) -> add k v m) empty l)
Data_encoding.(
list (tup2 Tezos_crypto.Hashed.Block_hash.encoding arg_encoding))
end
module Table = struct
include Stdlib.Hashtbl.MakeSeeded (struct
include Tezos_crypto.Hashed.Block_hash
[@@@ocaml.warning "-32"]
let hash = Stdlib.Hashtbl.seeded_hash
let seeded_hash = Stdlib.Hashtbl.seeded_hash
[@@@ocaml.warning "+32"]
end)
let encoding arg_encoding =
Data_encoding.conv
(fun h -> fold (fun k v l -> (k, v) :: l) h [])
(fun l ->
let h = create (List.length l) in
List.iter (fun (k, v) -> add h k v) l ;
h)
Data_encoding.(
list (tup2 Tezos_crypto.Hashed.Block_hash.encoding arg_encoding))
end