Table of Contents

Namespace Garyon.Objects

Classes

AppVersionInfo

Provides version information about the application, usually parsed from AssemblyInformationalVersionAttribute.

AsyncMemoizationDictionary<TInput, TOutput>

Encapsulates a memoization dictionary for caching outputs of an async function.

BaseEquatable<T>

A base implementation of IEquatable<T>, overriding the Equals(object) method, and implementing the interface, with focus on comparing the non-null instance via EqualsCore(T).

CacheableBigInteger

Provides a mechanism that optimally handles operations on a BigInteger instance by caching smaller chunks of values before being applied to the big boi.

CancellationTokenFactory

Provides a CancellationTokenSource that will be re-instantiated after every cancellation.

ComparisonKindsExtensions

Contains extensions for the ComparisonKinds enum.

EntryKeyComparer<TKey, TValue>

Represents a KeyValuePair<TKey, TValue> comparer, where the result only relies on the comparison result between the keys.

EntryKeyOverValueComparer<TKey, TValue>

Represents a KeyValuePair<TKey, TValue> comparer, where the result relies on the comparison result between the keys, and then the values, if the keys are equal.

EntryValueComparer<TKey, TValue>

Represents a KeyValuePair<TKey, TValue> comparer, where the result only relies on the comparison result between the values.

EntryValueOverKeyComparer<TKey, TValue>

Represents a KeyValuePair<TKey, TValue> comparer, where the result relies on the comparison result between the values, and then the keys, if the values are equal.

ExtremumExtensions

Provides extension functions for the Extremum enum.

LabelledObject<T>

Represents a object that is labelled with a name.

LineStringBuilder

Provides mechanisms and functions to building a multiline string.

MemoizationDictionary<TInput, TOutput>

Encapsulates a memoization dictionary for caching outputs of a function that could be expensive to compute.

MessageRequestChannel

Represents a message request channel that allows writing requests for a single operation.

OpenInterval<T>

Represents an open interval to the one direction from a given value.

RepeatedValueCollection<T>

Represents a collection that consists of the same repeated value the specified number of times.

SharedInstanceExtensions

Provides extensions for types implementing ISharedInstance.

Singleton<T>

Provides a single instance of a type.

SpanYielding

Provides helper methods for yielding values from a factory into a Span<T>.

StructRefHelperExtensions

Provides extensions related to StructRef<T>.

StructRef<T>

Provides the ability to store a reference to an unmanaged struct without using pointers.

TypeValueCounterDictionary

Represents a ValueCounterDictionary<TKey> storing keys of type Type.

ValueBoundsExtensions
ValueBounds<T>

Contains the minimum and maximum values that were discovered from a collection.

VariablyLabelledObject<T>

Represents a object that is labelled with a name that may variably change.

Yielding

Provides helper methods for handling yielded values from factory methods.

Structs

HourMinute

Represents a time instance with the hour and minute.

MinuteSecond

Represents a time instance with the minute and second.

RepeatedValueCollection<T>.Enumerator

Provides an enumerator for a RepeatedValueCollection<T> instance.

SpanYielder<T>

Provides mechanisms for convenient yielding of a factory's values into a Span<T>, with multiple yield operations applying after the previously iterated indices.

Yielder<T>

Provides mechanisms for convenient yielding of a factory's values.

Interfaces

ICloneable<T>

Denotes that an object is cloneable into a target type, usually itself.

ICopyable<TTarget>

Denotes that an object is copyable into a target instance, usually of another type.

IFullKeyValuePairComparer<TKey, TValue>

Represents a comparer for KeyValuePair<TKey, TValue> that demands that both the key and the value implement IComparable<T>.

IHasHour

Represents a time object that has an hour component.

IHasMinute

Represents a time object that has a minute component.

IHasSecond

Represents a time object that has a second component.

IKeyValuePairComparer<TKey, TValue>

Represents a comparer for KeyValuePair<TKey, TValue>.

ISharedInstance

Defines that a type has a shared instance accessible via Garyon.Objects.SharedInstanceExtensions.get_Shared<T>().

ITimeObject

Represents a time object.

Enums

ComparisonKinds

Represents comparison kinds.

ComparisonResult

Represents the result of a comparison.

Extremum

Determines an extremum kind.

Delegates

IndexedEnumeratedElementAction<T>

Represents a function that performs an action on an enumerated element, also provided its index in the enumeration order.

KeySelector<TKey, TValue>

Represents a key selector function, which transforms a provided value into a key, within a KeyValuePair<TKey, TValue>.

ValueSelector<TKey, TValue>

Represents a value selector function, which transforms a provided key into a value, within a KeyValuePair<TKey, TValue>.