Ubiquity.NET.Extensions
20.1.8-alpha.0.2
Requires NuGet 4.9.0 or higher.
dotnet add package Ubiquity.NET.Extensions --version 20.1.8-alpha.0.2
NuGet\Install-Package Ubiquity.NET.Extensions -Version 20.1.8-alpha.0.2
<PackageReference Include="Ubiquity.NET.Extensions" Version="20.1.8-alpha.0.2" />
<PackageVersion Include="Ubiquity.NET.Extensions" Version="20.1.8-alpha.0.2" />
<PackageReference Include="Ubiquity.NET.Extensions" />
paket add Ubiquity.NET.Extensions --version 20.1.8-alpha.0.2
#r "nuget: Ubiquity.NET.Extensions, 20.1.8-alpha.0.2"
#:package Ubiquity.NET.Extensions@20.1.8-alpha.0.2
#addin nuget:?package=Ubiquity.NET.Extensions&version=20.1.8-alpha.0.2&prerelease
#tool nuget:?package=Ubiquity.NET.Extensions&version=20.1.8-alpha.0.2&prerelease
About
Ubiquity.NET.Extensions contains general extensions for .NET. This is a bit of a "grab bag" of functionality used by but not actually part of multiple other Ubiquity.NET projects.
Key support
- Computing a hash code for a ReadOnlySpan of bytes using System.IO.System.IO.Hashing.XxHash3
- DisposableAction for building actions that must occur on Dispose
- This is useful for implementing the RAII pattern in .NET.
- MustUseReturnValueAttribute that is compatible with the MustUseRetVal package.
- StringNormalizer extensions to support converting line endings of strings for interoperability.
- A custom ValidatedNotNullAttribute to allow compiler to assume a parameter value is validated as not null.
- Fluent style parameter value validation extensions.
- These are useful when passing parameters to a function that produces a result that is fed to the base constructor. These are also useful in body expressions to validate input parameters.
- DictionaryBuilder to enable dictionary initializer style initialization of
ImmutableDictionary<TKey, TValue>
with significantly reduced overhead.- This leverages an
ImmutableDictionary<TKey, TValue>.Builder
under the hood to build the dictionary. When theToImmutable()
method is called the builder is converted to the immutable state without any overhead of a copy or re-construction of hash tables etc...
- This leverages an
- KvpArrayBuilder to enable array initializer style initialization of
ImmutableArray<KeyValuePair<TKey, TValue>>
with significantly reduced overhead.- This leverages an
ImmutableArray<T>.Builder
under the hood to build the array directly. When theToImmutable()
method is called the builder is converted to the immutable state without any overhead of a copy. - Since this is an array and not a dictionary there is no overhead for allocating, initializing or copying any hash mapping for the keys.
- This leverages an
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- System.IO.Hashing (>= 9.0.7)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Ubiquity.NET.Extensions:
Package | Downloads |
---|---|
Ubiquity.NET.Llvm.Interop
.NET Low Level Interop Bindings for Ubiquity.LibLLVM []. Direct use of this low level API is **STRONGLY** discouraged, instead you should use the Ubiquity.NET.Llvm package, which provides a full C# object model projection of the LLVM APIs on top of this library. |
|
Ubiquity.NET.InteropHelpers
.NET Low Level Interop support library to aid in native code interop scenarios |
|
Ubiquity.NET.Runtime.Utils
General use Support for interpreters/runtimes |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
20.1.8-alpha.0.2 | 495 | 7/22/2025 |
20.1.8-alpha.0.1 | 21 | 7/18/2025 |
20.1.8-alpha | 114 | 7/16/2025 |