Rustly.Async 10.5.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Rustly.Async --version 10.5.0
                    
NuGet\Install-Package Rustly.Async -Version 10.5.0
                    
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="Rustly.Async" Version="10.5.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Rustly.Async" Version="10.5.0" />
                    
Directory.Packages.props
<PackageReference Include="Rustly.Async" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Rustly.Async --version 10.5.0
                    
#r "nuget: Rustly.Async, 10.5.0"
                    
#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.
#:package Rustly.Async@10.5.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Rustly.Async&version=10.5.0
                    
Install as a Cake Addin
#tool nuget:?package=Rustly.Async&version=10.5.0
                    
Install as a Cake Tool

Rustly.Async (v10.5.0)

Async extensions for Rustly Result<T, E> and Option<T>. Fluent async pipelines without manual unwrapping.

Installation

dotnet add package Rustly.Async

Task<Result<T, E>>

var user = await GetUserAsync(id)
    .AndThenAsync(u => ValidateAsync(u))
    .MapAsync(u => u.ToDto())
    .InspectErrAsync(e => Log.Error(e));

Task<Option<T>>

var name = await FindUserAsync(id)
    .MapAsync(u => u.Name)
    .UnwrapOrAsync("Unknown");

Try / TryAsync

var result = TryExtensions.Try(() => int.Parse(input));
var data = await TryExtensions.TryAsync(() => httpClient.GetStringAsync(url));

ValueTask variants

All methods available for ValueTask<Result<T,E>> and ValueTask<Option<T>>.

API

Method Description
MapAsync Transform Ok/Some value (sync or async)
MapErrAsync Transform Err value (sync or async)
AndThenAsync Chain Result/Option-returning function
OrElseAsync Fallback on Err/None
UnwrapOrAsync Get value or default
InspectAsync Side effect on Ok/Some
InspectErrAsync Side effect on Err
MatchAsync Pattern match (sync or async branches)
FilterAsync Filter Option with predicate
OkOrAsync Option → Result with error
ToTask / ToValueTask Wrap sync value into Task/ValueTask
Try / TryAsync try/catch → Result<T, Exception>
Product 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 is compatible.  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 netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen 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.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Rustly.Async:

Package Downloads
Rustly

Rust-inspired functional programming toolkit for .NET. Includes Option, Result, async pipelines, LINQ, analyzers, and source generators. One package for the complete experience.

GitHub repositories

This package is not used by any popular GitHub repositories.

EN: 10.5.0 — Version bump. | RU: 10.5.0 — Обновление версии.