module GenHashTable:sig
..end
Hash tables on generic containers with notion of death and aliveness.
Define a hash table on generic containers which have a notion of "death" and aliveness. If a binding is dead the hash table can automatically remove it.
type
equal =
| |
ETrue |
|||
| |
EFalse |
|||
| |
EDead |
(* | the container is dead | *) |
module MakeSeeded:functor (
H
:
sig
type
t
keys
type
'a
containercontains keys and the associated data
val hash :int -> t -> int
same as
Hashtbl.SeededHashedType
val equal :'a container ->
t -> Ephemeron.GenHashTable.equalequality predicate used to compare a key with the one in a container. Can return
EDead
if the keys in the container are deadval create :t ->
'a -> 'a container
create key data
creates a container from some initials keys and one dataval get_key :'a container ->
t option
get_key cont
returns the keys if they are all aliveval get_data :'a container -> 'a option
get_data cont
returns the data if it is aliveval set_key_data :'a container ->
t -> 'a -> unit
set_key_data cont
modifies the key and dataval check_key :'a container -> bool
check_key cont
checks if all the keys contained in the data are aliveend
) ->
Ephemeron.SeededS
with type key = H.t
Functor building an implementation of an hash table that use the container for keeping the information given