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 must be positive and decides how many entries to store.

EmptyPersistentQueueException

Represents an error raised when an operation requires a non-empty persistent queue.

EmptyRandomAccessQueueException

Represents an error raised when an operation requires a non-empty random access queue.

ICacheValueFactory<'Arg, 'V>

Represents a factory that creates a value on a cache miss.

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 NoOverlapIntervalMap.

InvalidRegisterSetSizeException

Represents an error raised when a register set is created with an invalid size.

LRUCache<'K, 'V>

Represents a Least Recently Used (LRU) cache that does not support concurrency. The capacity must be positive.

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. Uses two lists internally to represent the queue.

RandomAccessQueue

Provides functions for creating or manipulating random access queues.

RandomAccessQueue<'T>

Represents a random access queue: a sequence of elements that can be accessed by index.

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 generic SortedList collection.

UniqueQueue<'T>

Represents a queue that stores each element at most once.

WeakBucketTable<'T>

Represents a thread-safe weak interning table. Values are grouped by a caller-supplied hash, and each bucket stores only weak references to the interned values.

Type something to start searching.