# Draekien Industries

## Waystone.Monads

- [Welcome](https://draekien-industries.wpei.me/getting-started/readme.md): Keep exceptions exceptional
- [Quickstart](https://draekien-industries.wpei.me/getting-started/quickstart.md)
- [Monads](https://draekien-industries.wpei.me/core-concepts/monads.md): Learn about monads and why they are important to use in your code
- [Options](https://draekien-industries.wpei.me/core-concepts/options.md)
- [Results](https://draekien-industries.wpei.me/core-concepts/results.md)
- [Configuration](https://draekien-industries.wpei.me/using-the-library/configuration.md)
- [Core Functionality](https://draekien-industries.wpei.me/using-the-library/core-functionality.md): Learn about the different functionality that is common to both the Option and Result types.
- [Async](https://draekien-industries.wpei.me/using-the-library/async.md): Learn how to chain asynchronous work through Option and Result without awaiting every step.
- [Option\<T>](https://draekien-industries.wpei.me/using-the-library/option-of-t.md)
- [Result\<T, E>](https://draekien-industries.wpei.me/using-the-library/result-of-t-and-e.md)
- [Errors and Exceptions](https://draekien-industries.wpei.me/using-the-library/errors-and-exceptions.md)
- [Generated error codes](https://draekien-industries.wpei.me/using-the-library/generated-error-codes.md): Mark an enum with \[ErrorCodeCatalog] and get its error codes as compile-time constants, generated at build time.
- [Analyzer rules](https://draekien-industries.wpei.me/using-the-library/analyzer-rules.md): The 28 diagnostics that ship inside Waystone.Monads, what each one means, and how to turn them up or off.
- [Upgrading](https://draekien-industries.wpei.me/using-the-library/upgrading.md): What changes between major versions, and what you have to do about it.
- [v1.x to v2.x](https://draekien-industries.wpei.me/using-the-library/upgrading/v1-to-v2.md)
- [v2.x to v3.x](https://draekien-industries.wpei.me/using-the-library/upgrading/v2-to-v3.md)
- [v3.x to v4.x](https://draekien-industries.wpei.me/using-the-library/upgrading/v3-to-v4.md)
- [v4.x to v5.x](https://draekien-industries.wpei.me/using-the-library/upgrading/v4-to-v5.md)
- [v5.x to v6.x](https://draekien-industries.wpei.me/using-the-library/upgrading/v5-to-v6.md): Three changes in v6 keep compiling and change what your code does. Read this page before you upgrade, and start with the two silent ones.
- [Deprecations](https://draekien-industries.wpei.me/using-the-library/deprecations.md): API that has been removed, the version that removed it, and what to use instead.

## Waystone.Monads.FluentValidation

- [Welcome](https://draekien-industries.wpei.me/waystone.monads.fluentvalidation/welcome.md)
- [Quickstart](https://draekien-industries.wpei.me/waystone.monads.fluentvalidation/quickstart.md): Get started with using Waystone.Monads.FluentValidation in under a minute.
- [Configuration](https://draekien-industries.wpei.me/waystone.monads.fluentvalidation/using-the-library/configuration.md): Configure the error code and fallback message used when a validation failure becomes an Error.
- [Validating Values](https://draekien-industries.wpei.me/waystone.monads.fluentvalidation/using-the-library/validating-values.md)
- [ValidationErr](https://draekien-industries.wpei.me/waystone.monads.fluentvalidation/using-the-library/validationerr.md)

## Waystone.WideLogEvents

- [Welcome](https://draekien-industries.wpei.me/waystone.widelogevents/welcome.md)
- [Serilog](https://draekien-industries.wpei.me/waystone.widelogevents/quickstart/serilog.md)
- [Serilog + AspNetCore](https://draekien-industries.wpei.me/waystone.widelogevents/quickstart/serilog-+-aspnetcore.md)
