packed Object THAMTNode

DescriptionHierarchyInternal Classes and RecordsInternal TypesFieldsMethodsProperties

Unit

Declaration

type generic THAMTNode<TItem,TInfo> = packed object(TObject)

Description

Low-level HAMT from which further collections are built

Each node has a reference counter and stores up to 32 pointers or items.
The HAMT node is either mutable (if reference counter is 1) or immutable with copy-on-write (if reference counter is >= 2) like strings.
Using the nodes directly would be more efficient than using the map classes, since you have one less memory access without the class instance.

Hierarchy

  • TObject
  • THAMTNode

Overview

Internal Classes and Records

Public THAMTArray = packed object(TObject)
Public THAMTEnumerator = object(TObject)

Internal Types

Public PHAMTArray = ˆTHAMTArray;
Public PHAMTNode = ˆTHAMTNode;
Public PItem = ˆTItem;
Public PPHAMTNode = ˆPHAMTNode;
Public THAMTArrayIndex = integer;

Fields

Public internal const HAMTArrayEnd = -1;

Methods

Public class procedure decrementRefCount(node: PHAMTNode); static;
Public class procedure decrementRefCountButKeepChildren(node: PHAMTNode); static;
Public class function allocateEmpty(): PHAMTNode; static;
Public class function uniqueNode(ppnode: PPHAMTNode): PHAMTNode;
Public class function include(ppnode: PPHAMTNode; const item: TItem; allowOverride: boolean): Boolean; static;
Public class function exclude(ppnode: PPHAMTNode; const item: TItem): Boolean; static;
Public function find(const item: TItem): PItem;
Public function contains(const item: TItem): boolean;

Description

Internal Types

Public PHAMTArray = ˆTHAMTArray;
 
Public PHAMTNode = ˆTHAMTNode;
 
Public PItem = ˆTItem;
 
Public PPHAMTNode = ˆPHAMTNode;
 
Public THAMTArrayIndex = integer;
 

Fields

Public internal const HAMTArrayEnd = -1;
 

Methods

Public class procedure decrementRefCount(node: PHAMTNode); static;
 
Public class procedure decrementRefCountButKeepChildren(node: PHAMTNode); static;
 
Public class function allocateEmpty(): PHAMTNode; static;
 
Public class function uniqueNode(ppnode: PPHAMTNode): PHAMTNode;
 
Public class function include(ppnode: PPHAMTNode; const item: TItem; allowOverride: boolean): Boolean; static;
 
Public class function exclude(ppnode: PPHAMTNode; const item: TItem): Boolean; static;
 
Public function find(const item: TItem): PItem;
 
Public function contains(const item: TItem): boolean;
 

Generated by PasDoc 0.14.0.