Header menu logo B2R2

B2R2.Collections Namespace

Contains types that define various collections of objects used for binary analysis, such as interval sets and interval maps.

Type/Module Description

Array

Provides extended array functions.

ConcurrentLRUCache<'K, 'V>

Represents Least Recently Used (LRU) cache supporting concurrency. The capacity decides how many entries to store.

DoublyLinkedKeyValue<'K, 'V>

Represents a doubly-linked key-value node that is used in the LRUCache.

ICacheableOperation<'Arg, 'V>

Represents a cacheable operation, which will be executed when there's no already cached item.

IntervalMap

Provides functions for creating or manipulating interval maps.

IntervalMap<'V>

Represents an interval map, which is a map based on an interval tree. This maps an interval (i.e., AddrRange) to a value of type 'V. We currently implement this using the functional finger tree. Intervals in this map are not necessarily disjoint and can overlap. To disallow overlapping intervals, consider using NoOverlapIntervalMap instead.

IntervalSet (Module)

Provides functions for creating or manipulating interval sets.

IntervalSet (Type)

Represents an interval-tree-based set, which stores intervals (AddrRange) that can overlap unlike ARMap.

LRUCache<'K, 'V>

Represents a Least Recently Used (LRU) cache that does not support concurrency.

NoOverlapIntervalMap

Provides functions for creating or manipulating non-overlapping interval maps.

NoOverlapIntervalMap<'V>

Represents a non-overlapping interval map. By interval map, we mean a map based on an interval tree, which maps an interval (i.e., AddrRange) to a value. We currently implement this using a red-black tree, which follows the implementation of the paper written by Kimball Germane and Matthew Might: "Deletion: The Curse of the Red-Black Tree", Journal of Functional Programming, vol. 24, no. 4, 2014.

PersistentQueue

Provides functions to create or manipulate persistent queues.

PersistentQueue<'T>

Represents a persistent queue. We internally use two lists to represent the queue.

RandomAccessQueue

Provides functions for creating or manipulating random access queues.

RandomAccessQueue<'T>

Represents an interval-tree-based map: an interval of type (Addr) -> a RandomAccessQueueElement ('a).

RegisterSet

Represents a set of register IDs. This is an efficient and architecture-agnostic set data structure that internally uses bit arrays. Since RegisterIDs always start from 0 for any architecture, we can use it directly as an index to the bit array.

SortedList

Provides extended functionality for the SortedList collection.

UniqueQueue<'T>

Represents a queue that only stores unique elements.

Type something to start searching.