nuv.Option
3.1.0
dotnet add package nuv.Option --version 3.1.0
NuGet\Install-Package nuv.Option -Version 3.1.0
<PackageReference Include="nuv.Option" Version="3.1.0" />
<PackageVersion Include="nuv.Option" Version="3.1.0" />
<PackageReference Include="nuv.Option" />
paket add nuv.Option --version 3.1.0
#r "nuget: nuv.Option, 3.1.0"
#:package nuv.Option@3.1.0
#addin nuget:?package=nuv.Option&version=3.1.0
#tool nuget:?package=nuv.Option&version=3.1.0
nuv.Option
basic option type implementation
Declaring results
// Option.Some<T>(TValue)
var someOption = Option.Some("some value")
// or Option<TValue>.Some(TValue)
var someOpion = new Option<string>.Some("some value")
// or implicitly
Option<string> some = "";
// Option.None<TValue>()
var noneOption = Option.None<string>()
// Option.None<TValue>()
var noneOption = new Option<string>.None()
Applying functions to values
someOption.Map(x => x.Length)
// -> Some(10)
someOption
.Map(x => Some(x.Length)) // -> Some(Some(10))
.Flatten() // -> Some(10)
someOption.Then(x => Some(x.Length))
// -> Some(10)
noneOption.Map(x => x.Length)
// -> None()
Checking for Some / None
someOption.IsSome()
// -> true
someOption.IsNone()
// -> false
noneOption.IsSome()
// -> false
noneOption.IsNone()
// -> true
Getting values
someOption.Unwrap("whoops");
// -> "some value"
noneOption.Unwrap("whoops");
// -> "whoops"
| 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 was computed. 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 is compatible. |
| .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
- nuv.Result (>= 5.0.0)
- System.Text.Json (>= 9.0.4)
-
.NETStandard 2.1
- nuv.Result (>= 5.0.0)
- System.Text.Json (>= 9.0.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on nuv.Option:
| Package | Downloads |
|---|---|
|
nuv.Option.SwaggerGen
Basic SwaggerGen integration for nuv.Option |
GitHub repositories
This package is not used by any popular GitHub repositories.
v.3.1.0
- Registered OptionConverterFactory on Option<T>. No longer needs to be manually enabled.
v.3.0.0
- Change Option<T> to be an abstract class with private ctor.
- Some/None are now proper variants of Result
- Required changes *should* be minimal
- This makes proper serialization using System.Text.Json possible
-> Add "new OptionConverterFactory()" to your JsonSerializationOptions.Converters to enable
v.2.1.0
- Add implicit conversion for T -> Option<T>
v.2.0.2
- Moved Option.Some<T>() to Option<T>.Some(), same for None
- Added Wrappers for Option<T>.Some/None as Option.Some<T>() / None<T>() for backwards compatability
- Made Option<T> constructor private
v.2.0.1
- Change Result type to be class instead of record
-> To improve ergonomics when chaining .Map and such
v.2.0.0
- Add proper nuv.Option namespace
v.1.0.3
- Add new Option.Map variant that takes an Action<T>
v.1.0.2
- Add support for NETStandard 2.0
v.1.0.1
- Add function summaries
v.1.0.0
- Initial Release