Things I eventually got tired to rewrite over and over in different projects.
Just like a flea market, random things next to totally unrelated stuff.
Mostly extension methods, few base classes and helpers.
https://www.nuget.org/packages/Whatever.Extensions/
| Type | Description |
|---|---|
| ConvertExtensions | To[[S]Byte|[U]Int[16|32|64]|Single|Double|Decimal]() instead of Convert.To.... |
| DictionaryExtensions | IDictionary.GetOrAdd(..., Func<TKey> valueFactory). |
| Disposable | IDisposable base class. |
| DisposableAsync | IDisposableAsync base class. |
| EnumExtensions | Enum.HasFlags<T>(...), type-safe enum flag-checking. |
| SharedBuffer | Span<T> alternative for async scenarios. |
| Singleton | Generic singleton base class. |
| SpanMemoryManager | MemoryManager<T> for Span<T> as Memory<T> in async scenarios. |
| SparseProgress | IProgress<T> with granularity so it doesn't overwhelm consumers. |
| StreamExtensions | [Get|Set]Endianness[Scope], gets/sets endianness for endian-aware stuff. |
[Read|Write]<T>[Async](endianness?), for reading/writing unmanaged types. |
|
ReadExactly[Async](...) for .NET Standard 2.1. |
|
[Read|Write]StringAscii[Async], because it never gets old. |
|
| TextProgressBar | Text-mode progress bar, e.g. ████████████░░░░░░░░░░░░░░░░░░ 42.86%. |
| TypeExtensions | GetNiceName, friendlier version of Type.ToString(). |
| Name | Description |
|---|---|
| Default.csproj | NuGet package, SourceLink, versioning, code analysis/style. |