BMTLab.OneOf.Reduced 4.0.328

There is a newer version of this package available.
See the version list below for details.
dotnet add package BMTLab.OneOf.Reduced --version 4.0.328
NuGet\Install-Package BMTLab.OneOf.Reduced -Version 4.0.328
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.0.328" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BMTLab.OneOf.Reduced --version 4.0.328
#r "nuget: BMTLab.OneOf.Reduced, 4.0.328"
#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.0.328

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

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 81 4/24/2024
4.1.423 60 4/23/2024
4.0.328 150 3/28/2024
3.3.302 112 3/2/2024
3.2.221 106 2/21/2024
2.3.1027 286 10/27/2023
2.2.816 187 8/16/2023

Release