Mahamudra.Core 5.0.0

dotnet add package Mahamudra.Core --version 5.0.0
                    
NuGet\Install-Package Mahamudra.Core -Version 5.0.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="Mahamudra.Core" Version="5.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mahamudra.Core" Version="5.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Mahamudra.Core" />
                    
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 Mahamudra.Core --version 5.0.0
                    
#r "nuget: Mahamudra.Core, 5.0.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 Mahamudra.Core@5.0.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=Mahamudra.Core&version=5.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Mahamudra.Core&version=5.0.0
                    
Install as a Cake Tool

Mahamudra.Core

A simple package that implements the Railway Oriented Programming, a powerful Functional Programming pattern.

Usage

    public static Result<Person, string> CheckName(Result<Person, string> person)
    {
        if (string.IsNullOrWhiteSpace(person.Value.Name))
            return new Failure<Person, string>("Name should not be blank.");
        else
            return new Success<Person, string>(person.Value);
    }

    [TestMethod]
    public void Bind_ShouldFailValidateAge_True()
    {
        var result = person2
            .Bind(Validation.CheckName)
            .Bind(Validation.CheckEmail)
            .Bind(Validation.CheckAge);
        Assert.IsTrue(result.Messages.Contains("The age should be not inferior than 18."));
    }

Test

    public class Success
    {
        private Result<Person, string> person;
        [TestInitialize]
        public void Init()
        {
            person = new Success<Person, string>(new Person
            {
                Email = "",
                Name = "Pippo",
                Age = 120
            });

        }
        [TestMethod]
        public void Success_ShouldReturnSuccessFromResult_True()
        {
            Assert.IsTrue(person is Success<Person, string>);
        }
    }
    public class Failure
    {
        private Result<Person, string> error;

        [TestInitialize]
        public void Init()
        {
            error = new Failure<Person, string>("This is an error!");
        }


        [TestMethod]
        public void Failure_ShouldReturnFailureFromResult_True()
        {
            Assert.IsTrue(error is Failure<Person, string>);
        }
    }
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 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 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.
  • .NETStandard 2.1

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Mahamudra.Core:

Package Downloads
Mahamudra.Contemporary

A robust Task Parallel Library that combines Railway Oriented Programming with parallel execution patterns. Execute collections of tasks concurrently while maintaining functional programming principles and comprehensive error handling.

Mahamudra.Guard

Guard patterns

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
5.0.0 326 12/21/2025
4.0.1 157 9/20/2023
4.0.0 253 9/17/2023
3.0.1 191 2/2/2022
2.1.1 289 8/23/2020
2.0.2 230 8/23/2020
2.0.0 537 8/13/2020
1.0.0 796 8/12/2020

Railway Oriented Programming Library with .NET Standard 2.1 support