ZeidLab.ToolBox is a versatile and robust utility library designed to simplify common programming tasks, enhance error handling, and promote functional programming paradigms in C#. It provides a collection of tools and extensions that streamline operations such as null checks, error handling, task management, and railway-oriented programming (ROP) sometimes known as "Result Pattern".
- Unit Type: A type representing the absence of a meaningful value, useful in functional programming.
- Maybe Type: A monadic type for handling optional values, similar to Option in functional languages.
- Result Type: A robust error-handling type for railway-oriented programming, allowing chaining of operations with explicit success and failure states.
- Error Handling: Structured error handling with ResultError,supporting error codes, messages, and exceptions.
- Asynchronous Support: Comprehensive support for asynchronous operations with Result types.
Inspired by LanguageExt, this library offers a more compact and user-friendly alternative with extensive examples and tutorials.
To use ZeidLab.ToolBox in your project, you can install it via NuGet:
dotnet add package ZeidLab.ToolBox
for more information please visit ToolBox Package On NuGet.
By each release we add new features and bug fixes. You can find the full change log here.
There is a very detailed Wiki for this library full of descriptions and examples. also there is a YouTube channel with a dedicated video tutorials playlist for this library.
The main topics of this library are:
Types and PageLink | Short Description |
---|---|
Maybe<TIn> |
A monadic type for handling optional values, similar to Option in functional languages. |
Result<TIn> |
A robust error-handling type for railway-oriented programming, allowing chaining of operations with explicit success and failure states. |
Unit |
A type representing the absence of a meaningful value, useful in functional programming. |
ResultError |
Structured error handling with supporting error codes, messages, and exceptions. |
Try<TIn> |
A delegate to handel the unhandled exceptions in an efficient and expressive way in a synchronous flow of functions. |
TryAsync<TIn> |
A delegate to handel the unhandled exceptions in an efficient and expressive way in a synchronous flow of functions. |
Extension Methods | Methods to interact with Result<TIn> types |
Star this repository and follow me on GitHub to stay informed about new releases and updates. Your support fuels this project's growth!
If my content adds value to your projects, consider supporting me via crypto.
- Bitcoin: bc1qlfljm9mysdtu064z5cf4yq4ddxgdfztgvghw3w
- USDT(TRC20): TJFME9tAnwdnhmqGHDDG5yCs617kyQDV39
Thank you for being part of this community—let’s build smarter, together
Please feel free to submit issues, feature requests, or pull requests.
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Commit your changes.
- Push your branch and submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.