Dvchevskii.Optional
1.1.1
dotnet add package Dvchevskii.Optional --version 1.1.1
NuGet\Install-Package Dvchevskii.Optional -Version 1.1.1
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="Dvchevskii.Optional" Version="1.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Dvchevskii.Optional --version 1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Dvchevskii.Optional, 1.1.1"
#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 Dvchevskii.Optional as a Cake Addin #addin nuget:?package=Dvchevskii.Optional&version=1.1.1 // Install Dvchevskii.Optional as a Cake Tool #tool nuget:?package=Dvchevskii.Optional&version=1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Dvchevskii.Option
Provides utility type Option<T>
for optional value handling
Installation
Package manager console
Install-Package Dvchevskii.Optional
.NET CLI
dotnet add package Dvchevskii.Optional
Usage
Create an Option<T>
from T value
Option<int> option = Option.Some(42);
Assert.IsTrue(option.IsSome());
Create an empty Option<T>
Option<int> option = Option.None<int>();
Assert.IsTrue(option.IsNone());
Mapping
string MapOption(Option<int> option)
{
return option.MapOrElse(
value => $"I have value: {value}",
() => "I have no value =("
);
}
Assert.AreEqual(
MapOption(Option.Some(42)),
"I have value: 42"
);
Assert.AreEqual(
MapOption(Option.None<int>()),
"I have no value =("
);
Pattern matching
int PatternMatchOption<T>(Option<T> option) =>
option switch {
ISome => 42,
INone => 69
};
bool IsOptionSome<T>(Option<T> option) => option is ISome;
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. |
.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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Dvchevskii.Optional:
Package | Downloads |
---|---|
Dvchevskii.Optional.Async
Provides extension methods to easily handle working with Task<Option<T>> |
|
Dvchevskii.Optional.EntityFrameworkCore
Package Description |
|
Dvchevskii.Result.Extensions.Optional
Result pkg |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.1.1 | 166 | 5/3/2024 |
1.1.0 | 159 | 4/25/2024 |
1.1.0-ef-core.2 | 70 | 3/16/2024 |
1.1.0-async.7 | 54 | 3/16/2024 |
1.1.0-async.6 | 58 | 3/16/2024 |
1.1.0-async.5 | 58 | 3/16/2024 |
1.1.0-async.4 | 64 | 3/16/2024 |
1.1.0-async.2 | 50 | 3/15/2024 |
1.0.0 | 240 | 1/17/2024 |