Waystone.Monads
2.0.0
dotnet add package Waystone.Monads --version 2.0.0
NuGet\Install-Package Waystone.Monads -Version 2.0.0
<PackageReference Include="Waystone.Monads" Version="2.0.0" />
<PackageVersion Include="Waystone.Monads" Version="2.0.0" />
<PackageReference Include="Waystone.Monads" />
paket add Waystone.Monads --version 2.0.0
#r "nuget: Waystone.Monads, 2.0.0"
#addin nuget:?package=Waystone.Monads&version=2.0.0
#tool nuget:?package=Waystone.Monads&version=2.0.0
Waystone.Monads
A .NET implementation of the std::option and std::result modules from the Rust Standard Library.
Option
The Option
type represents an optional value: every Option
is either Some
and contains a value, or None
, and does not. It provides similar functionality
to the built in
nullable reference types
offered in C#, but provides a more rigid structure for handling the "null"
scenario.
Implemented Types
- An
Option<T>
abstract record describes theOption
type. - A
Some<T>
record describes theSome
type. - A
None<T>
record describes theNone
type.
Result
The Result
type is a type used for returning and propagating errors. Every
Result
is either Ok
, representing success and containing a value, or Err
,
representing an error and containing an error value.
Implemented Types
- An
Result<TOk,TErr>
abstract record describes theResult
type. - An
Ok<TOk,TErr>
record describes theOk
type. - An
Err<TOk,TErr>
record describes theErr
type.
Each concrete result type requires the other's generic type parameters in order to correlate correctly with each other.
Configuration
You can configure an action to be invoked when an exception is caught and
handled by the library. Invoke the UseExceptionLogger
function once during the
lifetime of your app:
MonadsGlobalConfig.UseExceptionLogger(ex =>
{
Log.Error(ex, "Exception when creating monad"); // use Serilog/NLog/Etc
});
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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. net9.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Threading.Tasks.Extensions (>= 4.6.3)
- System.ValueTuple (>= 4.6.1)
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Waystone.Monads:
Package | Downloads |
---|---|
Waystone.Monads.FluentValidation
An interop package for using FluentValidation with Waystone.Monads, allowing easy conversion between ValidationResult and Result types. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.0 | 141 | 5/6/2025 |
1.5.0 | 145 | 5/5/2025 |
1.4.0 | 104 | 5/2/2025 |
1.3.2 | 154 | 4/13/2025 |
1.3.1 | 175 | 4/10/2025 |
1.3.0 | 156 | 4/10/2025 |
1.2.1 | 470 | 3/25/2025 |
1.2.0 | 1,278 | 1/15/2025 |
1.1.0 | 118 | 12/31/2024 |
1.0.3 | 94 | 12/26/2024 |
1.0.2 | 99 | 12/25/2024 |
1.0.0 | 97 | 12/24/2024 |
0.2.0 | 122 | 12/12/2024 |
0.1.0 | 99 | 12/11/2024 |
0.0.17 | 116 | 12/11/2024 |
0.0.15 | 100 | 12/11/2024 |