Ephemeron.K1 (3)
NAME
Ephemeron.K1 - no descriptionModule
Module Ephemeron.K1Documentation
Module
K1
:
sig end
type
('k, 'd)
t
an ephemeron with one key
val create
:
unit -> ('k, 'd) t
Ephemeron.K1.create ()
creates an ephemeron with one key. The
data and the key are empty
val get_key
:
('k, 'd) t -> 'k option
Ephemeron.K1.get_key eph
returns
None
if the key of
eph
is
empty,
Some x
(where
x
is the key) if it is full.
val get_key_copy
:
('k, 'd) t -> 'k option
Ephemeron.K1.get_key_copy eph
returns
None
if the key of
eph
is
empty,
Some x
(where
x
is a (shallow) copy of the key) if
it is full. This function has the same GC friendliness as
Weak.get_copy
val set_key
:
('k, 'd) t -> 'k -> unit
Ephemeron.K1.set_key eph el
sets the key of
eph
to be a
(full) key to
el
val unset_key
:
('k, 'd) t -> unit
Ephemeron.K1.unset_key eph el
sets the key of
eph
to be an
empty key. Since there is only one key, the ephemeron starts
behaving like a reference on the data.
val check_key
:
('k, 'd) t -> bool
Ephemeron.K1.check_key eph
returns
true
if the key of the
eph
is full,
false
if it is empty. Note that even if
Ephemeron.K1.check_key eph
returns
true
, a subsequent
Ephemeron.K1.get_key
eph
can return
None
.
val blit_key
:
('k, 'a) t -> ('k, 'b) t -> unit
Ephemeron.K1.blit_key eph1 eph2
sets the key of
eph2
with
the key of
eph1
. Contrary to using
Ephemeron.K1.get_key
followed by
Ephemeron.K1.set_key
or
Ephemeon.K1.unset_key
this function does not prevent the incremental GC from erasing
the value in its current cycle.
val get_data
:
('k, 'd) t -> 'd option
Ephemeron.K1.get_data eph
returns
None
if the data of
eph
is
empty,
Some x
(where
x
is the data) if it is full.
val get_data_copy
:
('k, 'd) t -> 'd option
Ephemeron.K1.get_data_copy eph
returns
None
if the data of
eph
is
empty,
Some x
(where
x
is a (shallow) copy of the data) if
it is full. This function has the same GC friendliness as
Weak.get_copy
val set_data
:
('k, 'd) t -> 'd -> unit
Ephemeron.K1.set_data eph el
sets the data of
eph
to be a
(full) data to
el
val unset_data
:
('k, 'd) t -> unit
Ephemeron.K1.unset_key eph el
sets the key of
eph
to be an
empty key. The ephemeron starts behaving like a weak pointer.
val check_data
:
('k, 'd) t -> bool
Ephemeron.K1.check_data eph
returns
true
if the data of the
eph
is full,
false
if it is empty. Note that even if
Ephemeron.K1.check_data eph
returns
true
, a subsequent
Ephemeron.K1.get_data
eph
can return
None
.
val blit_data
:
('a, 'd) t -> ('b, 'd) t -> unit
Ephemeron.K1.blit_data eph1 eph2
sets the data of
eph2
with
the data of
eph1
. Contrary to using
Ephemeron.K1.get_data
followed by
Ephemeron.K1.set_data
or
Ephemeon.K1.unset_data
this function does not prevent the incremental GC from erasing
the value in its current cycle.
module Make :
functor (H : Hashtbl.HashedType) -> sig end
Functor building an implementation of a weak hash table
module MakeSeeded :
functor (H : Hashtbl.SeededHashedType) -> sig end
Functor building an implementation of a weak hash table.
The seed is similar to the one of
Hashtbl.MakeSeeded
.