Spec-Zone.ru › OCaml 4.14

Модуль 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API