IndQuestResults.Analyzers 1.0.5-dev

This is a prerelease version of IndQuestResults.Analyzers.
There is a newer version of this package available.
See the version list below for details.
dotnet add package IndQuestResults.Analyzers --version 1.0.5-dev
                    
NuGet\Install-Package IndQuestResults.Analyzers -Version 1.0.5-dev
                    
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="IndQuestResults.Analyzers" Version="1.0.5-dev">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IndQuestResults.Analyzers" Version="1.0.5-dev" />
                    
Directory.Packages.props
<PackageReference Include="IndQuestResults.Analyzers">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
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 IndQuestResults.Analyzers --version 1.0.5-dev
                    
#r "nuget: IndQuestResults.Analyzers, 1.0.5-dev"
                    
#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 IndQuestResults.Analyzers@1.0.5-dev
                    
#: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=IndQuestResults.Analyzers&version=1.0.5-dev&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=IndQuestResults.Analyzers&version=1.0.5-dev&prerelease
                    
Install as a Cake Tool

IndQuestResults - Enterprise-Grade Result<T> Library

Build Status Mutation Score Coverage License .NET Version NuGet Contributors Code of Conduct

A battle-tested, enterprise-grade Result<T> library for functional error handling in .NET applications. Provides type-safe, performant, and expressive ways to represent operation outcomes without exceptions.

โœจ Key Features

  • ๐Ÿ›ก๏ธ Type Safety: Eliminates null reference exceptions and runtime errors
  • โšก Performance Optimized: 70% reduction in allocations with Span<T> optimizations
  • ๐Ÿ”„ Functional Programming: Full monadic operations (Map, Bind, Match, Recover)
  • ๐Ÿงต Thread-Safe: Immutable design with readonly fields
  • ๐Ÿ“Š JSON Serializable: Built-in support for API responses and data persistence
  • โš ๏ธ Warning Support: Distinguish between errors and diagnostic warnings
  • ๐ŸŽฏ Enterprise Ready: Extensive mutation testing with 85% quality threshold

๐Ÿš€ Quick Start

Installation

dotnet add package IndQuestResults

Basic Usage

using IndQuestResults;

// Success results
var success = Result.Success();
var successWithValue = Result<string>.Success("Hello World");

// Failure results
var failure = Result.WithFailure("Operation failed");
var failureWithValue = Result<int>.WithFailure("Parse error", defaultValue: 0);

// Multiple errors
var multipleErrors = Result.WithFailure(new[] { "Error 1", "Error 2" });

// Warnings (successful with diagnostics)
var withWarnings = Result<string>.WithWarnings(
    new[] { "Performance warning" },
    "Operation completed"
);

// Warnings with quality metadata (confidence + missing data ratio)
var withWarnsAndMeta = Result<string>.WithWarnings(
    warnings: new[] { "Heuristic fill for missing fields", "Low signal period" },
    value: "Computed",
    confidence: 0.82,            // clamped to [0,1]
    missingDataRatio: 0.25       // clamped to [0,1]
);
Console.WriteLine(withWarnsAndMeta.Confidence);        // 0.82
Console.WriteLine(withWarnsAndMeta.MissingDataRatio);  // 0.25
Console.WriteLine(string.Join(", ", withWarnsAndMeta.Warnings));

Functional Programming

return await _dataService
    .GetUserAsync(userId)
    .Bind(user => _validator.ValidateUser(user))
    .Map(user => user.ToDto())
    .Tap(dto => _logger.LogSuccess($"User {dto.Id} processed"))
    .Recover(errors => CreateDefaultUserDto())
    .Match(
        onSuccess: dto => Ok(dto),
        onFailure: errors => BadRequest(errors)
    );

๐Ÿ“š Package Information

  • Target Framework: .NET 10.0+
  • Dependencies: None (zero external dependencies)
  • Package ID: IndQuestResults
  • License: MIT
  • Source: Battle-tested patterns from enterprise codebase
  • Coverage: 74.5% with comprehensive test suite (353 tests)
  • Quality: 85%+ mutation testing score

Release Notes & Download

  • Recommended: Release/IndQuestResults.1.0.4.nupkg
  • Previous: Release/IndQuestResults.1.0.3.nupkg, Release/IndQuestResults.1.0.2.nupkg, Release/IndQuestResults.1.0.1.nupkg
  • See CHANGELOG.md for details

๐Ÿค Contributing

We welcome high-quality contributions! IndQuestResults maintains strict quality standards:

Quick Start for Contributors

  1. Read our Contributing Guidelines (mandatory)
  2. Check our Code of Conduct
  3. Review existing Issues and Discussions

Quality Requirements

  • โœ… 100% unit test coverage for new code
  • โœ… Mutation testing score โ‰ฅ85%
  • โœ… Zero compilation warnings (warnings as errors)
  • โœ… XML documentation for all public APIs
  • โœ… Performance benchmarks for performance-critical changes

๐Ÿšจ Before Opening Issues

  • Bug reports MUST include a reproducible repository
  • Feature requests MUST include business justification and technical design
  • Performance issues MUST include benchmark data and profiling results

๐Ÿ“‹ Full Contributing Guidelines โ†’

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ† Recognition

IndQuestResults serves as a reference implementation for enterprise-grade functional programming in .NET. Contributors who maintain our quality standards are recognized in release notes and project documentation.

Contributor Levels

  • Bronze: First merged contribution
  • Silver: 5+ contributions with sustained quality
  • Gold: 20+ contributions with architectural improvements
  • Platinum: Core maintainer with mutation testing expertise

๐Ÿ“ž Support & Community


Quality First: We maintain enterprise-grade standards because this library powers production applications. Every contribution makes the .NET ecosystem stronger! ๐Ÿš€

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has 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.8 31 9/28/2025
1.0.5 201 9/19/2025
1.0.5-dev 201 9/19/2025