ResultVisualBasic 1.0.0
dotnet add package ResultVisualBasic --version 1.0.0
NuGet\Install-Package ResultVisualBasic -Version 1.0.0
<PackageReference Include="ResultVisualBasic" Version="1.0.0" />
<PackageVersion Include="ResultVisualBasic" Version="1.0.0" />
<PackageReference Include="ResultVisualBasic" />
paket add ResultVisualBasic --version 1.0.0
#r "nuget: ResultVisualBasic, 1.0.0"
#:package ResultVisualBasic@1.0.0
#addin nuget:?package=ResultVisualBasic&version=1.0.0
#tool nuget:?package=ResultVisualBasic&version=1.0.0
VisualBasicFunctionalExtensions
Package ID: VisualBasicFunctionalExtensions
Version: 1.0.0
Owner: Justi
License: MIT
Overview
Welcome to the ResultVisualBasic project! This project introduces a fully tested Result Monad for Visual Basic (VB), providing developers with a robust and functional way to handle the outcomes of operations. Whether you are a VB developer looking to improve error handling or a contributor interested in functional programming.
Installation
Install via NuGet Package Manager Console:
TODO
Features
- Generic Type: The Result Monad is implemented as a generic type in VB, ensuring flexibility and compatibility with various data types.
- Immutable: Instances of the Result Monad are immutable, promoting a consistent and predictable flow of data through functional transformations.
- Success and Failure Handling: Easily check whether an operation was successful or resulted in an error, providing explicit handling for success and failure scenarios.
- Error Details: In case of failure, the Result Monad includes information about the error, aiding in effective error diagnosis.
- Map and Bind Operations: Support for map and bind operations, allowing developers to apply functions to encapsulated values without unwrapping explicitly.
- Composability: Result Monads can be composed, simplifying error handling and promoting modular and expressive code structures.
Examples
Introduction to all the methods and function the library has to offer.
Result
Try
[Try](Of T, E)(func As Func(Of T), onError As Func(Of Exception, E)) As Result(Of T, E)
Private Const expectedMessage = "Can not sqrt negative integers"
Public Function CustomSqrt(x As Integer) As Double
If x < 0 Then
Throw New Exception(expectedMessage)
Else
Return Math.Sqrt(x)
End If
End Function
Public Sub ExampleNoException()
Dim value = 15
Dim expected = Result(Of Double, String).Ok(CustomSqrt(value))
Dim res = Result(Of Double, String).
Try(
Function() CustomSqrt(value),
Function(exception) exception.Message
)
Assert.AreEqual(expected, res)
End Sub
Public Sub ExampleCatchException()
Dim value = -1
Dim expected = Result(Of Double, String).Err(errorValue:=expectedMessage)
Dim res = Result(Of Double, String).
Try(
Function() CustomSqrt(value),
Function(exception) exception.Message
)
Assert.AreEqual(expected, res)
End Sub
Authors
Justin Kasteleijn Nadia Alrayes
License
MIT License
Copyright
(c) Justin Kasteleijn 2024
Bug Reporting
For bug reports, visit the GitHub repository.
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 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
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 198 | 1/11/2024 |
Fully working result monad. Not yet implemented any Enumerable variants.