Модуль Ephemeron.K1
module K1: sig .. end
Эфемерон с одним ключом.
type ('k, 'd) t эфемерон с одним ключом
val create : unit -> ('k, 'd) t
Ephemeron.K1.create () создаёт эфемерон с одним ключом. Данные и ключ пусты.
val get_key : ('k, 'd) t -> 'k option
Ephemeron.K1.get_key eph возвращает None, если ключ eph пустой, Some x, (где x — ключ), если он заполнен.
val get_key_copy : ('k, 'd) t -> 'k option
Ephemeron.K1.get_key_copy eph возвращает None, если ключ eph пустой, Some x, (где x — (поверхностная) копия ключа), если он заполнен. Эта функция имеет ту же дружественность к GC, что и Weak.get_copy
Если элемент является пользовательским блоком, он не копируется.
val set_key : ('k, 'd) t -> 'k -> unit
Ephemeron.K1.set_key eph el устанавливает ключ eph в (полный) ключ el
val unset_key : ('k, 'd) t -> unit
Ephemeron.K1.unset_key eph el устанавливает ключ eph в пустой ключ. Поскольку есть только один ключ, эфемерон начинает вести себя как ссылка на данные.
val check_key : ('k, 'd) t -> bool
Ephemeron.K1.check_key eph возвращает true, если ключ eph заполнен, false, если он пустой. Обратите внимание, что даже если Ephemeron.K1.check_key eph возвращает true, последующий Ephemeron.K1.get_keyeph может вернуть None.
val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
Ephemeron.K1.blit_key eph1 eph2 устанавливает ключ eph2 в ключ eph1 . В отличие от использования Ephemeron.K1.get_key за которым следует Ephemeron.K1.set_key или Ephemeron.K1.unset_key, эта функция не препятствует инкрементальному GC от стирания значения в текущем цикле.
val get_data : ('k, 'd) t -> 'd option
Ephemeron.K1.get_data eph возвращает None, если данные eph пусты, Some x, (где x — данные), если они заполнены.
val get_data_copy : ('k, 'd) t -> 'd option
Ephemeron.K1.get_data_copy eph возвращает None, если данные eph пусты, Some x, (где x — (поверхностная) копия данных), если они заполнены. Эта функция имеет ту же дружественность к GC, что и Weak.get_copy
Если элемент является пользовательским блоком, он не копируется.
val set_data : ('k, 'd) t -> 'd -> unit
Ephemeron.K1.set_data eph el устанавливает данные eph в (полные) данные el
val unset_data : ('k, 'd) t -> unit
Ephemeron.K1.unset_data eph el устанавливает ключ eph в пустой ключ. Эфемерон начинает вести себя как слабая ссылка.
val check_data : ('k, 'd) t -> bool
Ephemeron.K1.check_data eph возвращает true, если данные eph заполнены, false, если они пусты. Обратите внимание, что даже если Ephemeron.K1.check_data eph возвращает true, последующий Ephemeron.K1.get_dataeph может вернуть None.
val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
Ephemeron.K1.blit_data eph1 eph2 устанавливает данные eph2 в данные eph1 . В отличие от использования Ephemeron.K1.get_data за которым следует Ephemeron.K1.set_data или Ephemeron.K1.unset_data, эта функция не препятствует инкрементальному GC от стирания значения в текущем цикле.
val make : 'k -> 'd -> ('k, 'd) t
Ephemeron.K1.make k d создаёт эфемерон с ключом k и данными d.
val query : ('k, 'd) t -> 'k -> 'd option
Ephemeron.K1.query eph key возвращает Some x, (где x — данные эфемерона), если key физически равен ключу eph, и None, если eph пустой или key не равен ключу eph.
module Make: functor (H : Hashtbl.HashedType) -> Ephemeron.S with type key = H.t
Функтор, создающий реализацию слабого хеш-таблицы
module MakeSeeded: functor (H : Hashtbl.SeededHashedType) -> Ephemeron.SeededS with type key = H.t
Функтор, создающий реализацию слабого хеш-таблицы.
module Bucket: sig .. end
© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Ephemeron.K1.html