BMTLab.OneOf.Reduced 4.1.423

There is a newer version of this package available.
See the version list below for details.
dotnet add package BMTLab.OneOf.Reduced --version 4.1.423                
NuGet\Install-Package BMTLab.OneOf.Reduced -Version 4.1.423                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BMTLab.OneOf.Reduced" Version="4.1.423" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BMTLab.OneOf.Reduced --version 4.1.423                
#r "nuget: BMTLab.OneOf.Reduced, 4.1.423"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install BMTLab.OneOf.Reduced as a Cake Addin
#addin nuget:?package=BMTLab.OneOf.Reduced&version=4.1.423

// Install BMTLab.OneOf.Reduced as a Cake Tool
#tool nuget:?package=BMTLab.OneOf.Reduced&version=4.1.423                

BMTLab.StateResults

NuGet Nuget Downloads .NET

OneOf.Reduced & StateResults - .NET 8 Discriminated Type Unions Library

This library introduces a powerful mechanism for discriminated type unions in .NET 8 through two main constructs: OneOf and Result/Results. Both these constructs can work with up to 6 type arguments (T0, T1, ... T5).

How to Use

OneOf.Reduced

The core concept of the library. Represents a choice between one of the given types.

  1. Basic usage
OneOf<string, int> union;

union = "Operation is successful";
Console.WriteLine(union); // >> Operation is successful

union = 42;
Console.WriteLine(union); // >> 42
  1. Equality Check
OneOf<bool, int, string> unionA = 42;
OneOf<bool, int, string> unionB = 42;

bool isMatch = unionA == unionB;
Console.WriteLine(isMatch); // >> True
  1. Matching Values
OneOf<int, string, Exception> union = "Some text";

string result = union.Match
(
    number => number.ToString(),
    text => text.ToUpperInvariant(),
    error => error.Message
);

Console.WriteLine(result); // >> SOME TEXT
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on BMTLab.OneOf.Reduced:

Package Downloads
BMTLab.StateResults

Contains union-types representing either a successful result or a union-list of possible errors

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.1.424 450 4/24/2024
4.1.423 79 4/23/2024
4.0.328 236 3/28/2024
3.3.302 178 3/2/2024
3.2.221 153 2/21/2024
2.3.1027 333 10/27/2023
2.2.816 223 8/16/2023

v4.1
           - Added Type property for all IOneOf implementations, providing a static type of storing value.
           - Optimizing the performance of generating state marker types.
           - The None state marker type is now generated automatically if it was not specified by the user.
           - Small improvements.