package merlin-lib

  1. Overview
  2. Docs
Merlin's libraries

Install

Dune Dependency

Authors

Maintainers

Sources

merlin-5.3-502.tbz
sha256=2cea46f12397fa6e31ef0c0d4f5e11c1cfd916ee49420694005c95ebb3aa24bc
sha512=e94abb9ae38149245337db033e2c3891c7ec772168e99abf1bda0216a894c0854e7170b56fe88eba83ec98f2ebc0f5c7c723e8db14f59eeb6dd348bec12c6d62

doc/merlin-lib.utils/Merlin_utils/Stamped_hashtable/index.html

Module Merlin_utils.Stamped_hashtableSource

Sourcetype ('a, 'b) t

An instance of a stamped hashtable

Sourcetype changelog

The changelog datastructure logs stamped bindings added to tables. By separating the log from the table, it is possible to efficiently remove stamped bindings spread accross multiple tables.

Sourceval create : changelog -> int -> ('a, 'b) t

create changelog n creates a new table with an initial size of n (see Hashtbl.create) that logs its changes to changelog.

Sourceval add : ('a, 'b) t -> ?stamp:int -> 'a -> 'b -> unit

Add a binding, like Hashtbl.add, with an optional stamp. Unlike Hashtbl.add, having multiple bindings with the same key is undefined. (It's ok, this feature is not used by the caches!)

Sourceval mem : ('a, 'b) t -> 'a -> bool

See Hashtbl.mem.

Sourceval find : ('a, 'b) t -> 'a -> 'b

See Hashtbl.find.

Sourceval fold : ('a -> 'b -> 'acc -> 'acc) -> ('a, 'b) t -> 'acc -> 'acc

See Hashtbl.fold.

Sourceval clear : ('a, 'b) t -> unit

Clear the table and empty the changelog. See Hashtbl.clear.

Sourceval create_changelog : unit -> changelog

Create a new change log.

Sourceval backtrack : changelog -> stamp:int -> unit
Sourceval replace : ('a, 'b) t -> 'a -> 'b -> unit

This operation is unsafe in general. Only replacements that does not imply re-stamping are safe.

OCaml

Innovation. Community. Security.