Table of Contents

Namespace LfrlAnvil

Classes

Assume

Contains helper methods for ConditionalAttributeDEBUG assertions.

Bitmask

Creates instances of Bitmask<T> type.

Bounds

Creates instances of Bounds<T> type.

BoundsRange

Creates instances of BoundsRange<T> type.

Boxed

Contains boxed instances of value types.

Chain

Creates instances of Chain<T> type.

ComparerFactory<T>

Creates instances of IComparer<T> type.

DynamicCast

Contains methods for type casting.

Ensure

Contains helper methods for simple assertions.

Enumeration<T, TValue>

Represents a generic (name, value) tuple that can be used to construct more complex Enum-like objects.

Equality

Creates instances of Equality<T> type.

EqualityComparerFactory<T>

Creates instances of IEqualityComparer<T> type.

LazyDisposable<T>

Represents a generic lazy container for an optional disposable object.

Many

Creates collections.

MemoryElementWiseComparer<T>

Defines methods to support the comparison of ReadOnlyMemory<T> objects for equality.

OptionalDisposable

Creates instances of OptionalDisposable<T> type.

Pair

Creates instances of Pair<T1, T2> type.

ReadOnlyArray

Creates instances of ReadOnlyArray<T> type.

Ref

Creates instances of Ref<T> type.

Ref<T>

Represents a generic boxed value.

ReinterpretCast

Contains methods for unsafe reinterpret casting.

Structs

Bitmask<T>

Represents a lightweight generic bitmask.

Bitmask<T>.Enumerator

Lightweight enumerator implementation for Bitmask<T>.

BoundsRange<T>

A lightweight representation of a generic collection of ranges of values.

Bounds<T>

A lightweight representation of a generic range of values between Min and Max.

Chain<T>

A lightweight representation of a sequence of linked nodes with values.

Chain<T>.Enumerator

Lightweight enumerator implementation for Chain<T>.

Equality<T>

A lightweight representation of an equality comparison of two generic values.

Hash

Represents a lightweight hash code computation result.

LinkedListSlimEnumerator<T>

Lightweight enumerator implementation for a slim linked list.

LinkedListSlimNodeEnumerator<T>

Lightweight enumerator implementation for slim linked lists that internally uses LinkedListSlimNode<T> instances to enumerate the list.

LinkedListSlimNode<T>

Represents a single element node that belongs to a slim linked list instance.

LinkedListSlim<T>

Represents a slim version of a linked list of objects.

ListSlim<T>

Represents a slim version of a dynamic array of objects.

OptionalDisposable<T>

A lightweight generic container for an optional disposable object.

Pair<T1, T2>

A lightweight generic representation of a pair of items.

QueueSlimMemory<T>

Represents a view of a QueueSlim<T> instance's circular buffer.

QueueSlimMemory<T>.Enumerator

Lightweight enumerator implementation for QueueSlimMemory<T>.

QueueSlim<T>

Represents a slim version of first-in, first-out collection of objects implemented as a circular buffer.

ReadOnlyArray<T>

A lightweight generic read-only container for an Array.

ReadOnlyArray<T>.Enumerator

Lightweight enumerator implementation for ReadOnlyArray<T>.

Ref<T>.Enumerator

Lightweight enumerator implementation for Ref<T>.

Result

Represents a result of an operation.

Result<T>

Represents a result of an operation.

SparseListSlim<T>

Represents a slim version of a sparse dynamic array of objects.

SparseListSlim<T>.Sequence

Represents an enumerable view of a SparseListSlim<T> instance, that allows to enumerate over all of its elements in index order.

SparseListSlim<T>.Sequence.Enumerator

Lightweight enumerator implementation for SparseListSlim<T>.Sequence.

StackSlim<T>

Represents a slim version of last-in, first-out collection of objects.

StringSegment

A lightweight representation of a segment of string.

TypeNullability

Represents detailed information about Type nullability.

Interfaces

IMemoizedCollection<T>

Represents a memoized collection, that is a collection that is lazily materialized.

IReadOnlyRef<T>

Represents a read-only generic boxed value.

Enums

AddOrUpdateResult

Represents a result of an operation that can either add a new element or update an existing one.