package ocaml-base-compiler
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=c2d706432f93ba85bd3383fa451d74543c32a4e84a1afaf3e8ace18f7f097b43
doc/stdlib/Stdlib/Ephemeron/K1/index.html
Module Ephemeron.K1
Source
Ephemerons with one key.
an ephemeron with one key
Ephemeron.K1.create ()
creates an ephemeron with one key. The data and the key are empty
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.
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
If the element is a custom block it is not copied.
Ephemeron.K1.set_key eph el
sets the key of eph
to be a (full) key to el
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.
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
.
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 Ephemeron.K1.unset_key
this function does not prevent the incremental GC from erasing the value in its current cycle.
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.
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
If the element is a custom block it is not copied.
Ephemeron.K1.set_data eph el
sets the data of eph
to be a (full) data to el
Ephemeron.K1.unset_data eph el
sets the key of eph
to be an empty key. The ephemeron starts behaving like a weak pointer.
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
.
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 Ephemeron.K1.unset_data
this function does not prevent the incremental GC from erasing the value in its current cycle.
Ephemeron.K1.make k d
creates an ephemeron with key k
and data d
.
Ephemeron.K1.query eph key
returns Some x
(where x
is the ephemeron's data) if key
is physically equal to eph
's key, and None
if eph
is empty or key
is not equal to eph
's key.
Functor building an implementation of a weak hash table
Functor building an implementation of a weak hash table. The seed is similar to the one of Hashtbl.MakeSeeded
.