Namespace Flame.Collections
Classes
BetternessExtensions
Extension methods related to the BetterResult enum.
Cache<TKey, TValue>
A base class for cache data structures.
EmptyArray<T>
Exposes an empty array.
EnumerableComparer
An element-wise equality comparer for sequences of values.
EnumerableComparer<T>
An element-wise equality comparer for sequences of values.
ImmutableOrderedDictionary
An immutable dictionary that iterates over elements in the order they were added.
ImmutableOrderedDictionary<TKey, TValue>.Builder
A mutable wrapper around an immutable ordered dictionary.
Index<TContainer, TKey, TValue>
A data structure that memoizes lookups by key in a data structure.
InterningCache<T>
A cache that interns values: it maps each input value to a value that is structurally equal to the input and all structurally equal input values are mapped to the same output value as long as that output value is live.
LruCache<TKey, TValue>
A cache implementation that uses the least recently used (LRU) policy to evict stale key-value pairs.
MappedComparer<T1, T2>
An equality comparer that applies a mapping to elements before comparing them.
ReadOnlyListExtensions
Extensions that make manipulating read-only lists easier.
SmallMultiDictionary<TKey, TValue>
A small, memory-friendly and cache-friendly dictionary with O(n) asymptotic complexity for all operations.
StronglyConnectedComponents
Defines algorithms that compute strongly connected components.
SymmetricRelation<T>
Describes a symmetric relation between values: a set of two-element sets.
TreeSearchAlgorithm<TInternalNode, TLeafNode>
A base class for algorithms that search trees.
UniqueNameMap<T>
Generates a unique name for every value that is given to it. Generated names are stored. Requesting a name for the same object more than once always results in the same unique name.
UniqueNameSet<T>
Generates a unique name for every value it is passed. Generated names are stored, but not associated with the object they originated from: generating a name for the same object twice will always result in two different unique names. The resulting name will never be null or empty.
WeakCache<TKey, TValue>
A cache that maps keys to values for as long as neither the key nor the value of a key-value pair is garbage-collected. Weak caches do not prevent keys or values from being garbage-collected.
Structs
DeferredInitializer
A type of object that guarantees thread-safe, on-demand initialization. An initialization action is only executed once.
ImmutableOrderedDictionary<TKey, TValue>
An immutable dictionary that iterates over elements in the order they were added.
ReadOnlySlice<T>
A slice of a read-only list.
ValueList<T>
A growable list that is implemented as a value type. This type is mainly intended for use by other collection types, and is not a drop-in replacement for System.Collections.Generic.List.
Enums
Betterness
Specifies if one of two items is better than the other.