Namespace PoeShared.Scaffolding
Classes
ArrayPoolEventListener
AssemblyExtensions
AtomicFlag
Provides a thread-safe flag that can be set atomically. This class is optimized for performance in multi-threaded environments.
BenchmarkTimer
BinaryExtensions
ChangeSetExtensions
CircularBuffer<T>
Circular buffer. When writing to a full buffer: PushBack -> removes this[0] / Front() PushFront -> removes this[Size-1] / Back() this implementation is inspired by http://www.boost.org/doc/libs/1_53_0/libs/circular_buffer/doc/circular_buffer.html because I liked their interface.
CircularSourceList<T>
Not thread safe ! There is a bug in ChangeAwareList(?) that leads to ArgumentOutOfRange in some cases
CliExtensions
CloseableReactiveObject
ComparableExtensions
ComplexProgressTracker
Manages and tracks the progress of multiple tasks, providing an aggregated progress percentage.
ConfigurableReactiveObjectWithProperties<TProperties>
DateTimeUtils
DictionaryExtensions
DirectoryInfoExtensions
DisposableExtensions
DisposableReactiveRecord
EnumExtensions
EnumerableComparer<T>
Compares two sequences.
EnumerableExtensions
EnumeratorExtensions
ExceptionExtensions
ExpressionEqualityComparer
A comparer which implements IEqualityComparer<T> for Expression. This is copied from EFCore to avoid bringing all EF dependencies along with it: https://github.com/dotnet/efcore/blob/8e675829631dc49c284a779c86c2eab1d742f729/src/EFCore/Query/ExpressionEqualityComparer.cs
Fallback<T>
FileInfoExtensions
FileUtils
ForcedDelayBlock
Enforces a minimum duration for a block of code execution.
GeometryExtensions
GlobalIdProvider
HierarchicalSourceCache<TObject, TKey>
HierarchicalValue<TContainer, T>
IntPtrExtensions
InvalidStateException
IpAddressExtensions
KeyboardLayoutManagerExtensions
LambdaComparer<T>
LambdaEqualityComparer<T>
LazyReactiveObject<T>
LoggingChangeSetAdaptorBase
LoggingChangeSetAdaptor<T, TKey>
LoggingListChangeSetAdaptor<T>
MappingEnumerator<T, TResult>
MetricsExtensions
NaturalStringComparer
Implements a natural comparer for strings.
NotifyPropertyChangedExtensions
NumberExtensions
ObjectExtensions
ObjectReflectionExtensions
ObservableCollectionAdaptorEx<T>
ObservableCollectionEx<T>
ObservableExtensions
ObservableListener<T>
Observables
OperationTimer
PathUtils
ProcessHelper
ProcessUtils
ReactiveList<T>
ReactiveObjectExtensions
ReactiveObjectWithProperties<TProperties>
ReactiveRecord
ReactiveSet<T>
SchedulerExtensions
SecureStringExtensions
Provides unsafe temporary operations on secured strings.
SemaphoreSlimExtensions
ServiceCollectionExtensions
SourceCacheAccessor<TObject, TKey>
SourceCacheEx<T, TKey>
SourceCachesSynchronizer<TObject, TKey>
Provides synchronization between two source lists. Changes made to one list will be reflected in the other and vice versa. NOTE: The same approach for SourceList does not work as it is not really possible to distinguish between some operations in multi-threaded environment. It will work MOST of the time, but for some combinations of operation this will generate invalid sequences.
SourceListEx<T>
Slightly extended version of SourceList that materializes collection changes using specified scheduler or Immediate if not provided
StopwatchExtensions
StreamExtensions
StringExtensions
StringUtils
SynchronizedObservableCollectionEx<T>
TaskExtensions
TempFile
Represents a temporary file that can be disposed of.
ToStringBuilder
TypeExtensions
UnityContainerExtensions
VersionExtensions
WellKnownContentTypes
Provides a collection of well-known ContentType instances.
WindowHandleExtensions
WorkerTask
WorkerThread
WpfSizeExtensions
XDocumentExtensions
XmlExtensions
Structs
AnnotatedBoolean
Represents a boolean value annotated with a string, providing additional context or information about the boolean value.
ProcessHelper.ProcessRunInfo
PropertyAccessor<TValue>
RandomInteger
RandomTimeSpan
ValueStopwatch
Interfaces
ICloseController
ICloseController<TValue>
ICloseable
Provides a mechanism for objects that can be closed. This interface is typically used for objects that require clean-up or release of resources when they are no longer needed. It includes a property for accessing the close controller responsible for the closing logic.
ICloseable<T>
Provides a generic mechanism for objects that can be closed, where the type of the close controller is specified. This interface is useful for objects that have type-specific closing logic or resources that need to be released in a particular manner.