Thrown by tryMatch when an unhandled type is encountered.
A tagged union that can hold a single value from any of a specified set of types.
Placeholder used to refer to the enclosing SumType.
True if handler is a potential match for Ts, otherwise false.
Calls a type-appropriate function with the value held in a SumType.
Attempts to call a type-appropriate function with the value held in a SumType, and throws on failure.
This module was copied from Phobos at commit 87c6e7e35 (2022-07-06). This is necessary to include https://github.com/dlang/phobos/pull/8501 which is a fix needed for DIP1000 compatibility. A couple minor changes where also required to deal with package(std) imports.
SumType is a generic discriminated union implementation that uses design-by-introspection to generate safe and efficient code. Its features include:
* [Pattern matching.]match * Support for self-referential types. * Full attribute correctness (pure, @safe, @nogc, and nothrow are inferred whenever possible). * A type-safe and memory-safe API compatible with DIP 1000 (scope). * No dependency on runtime type information (TypeInfo). * Compatibility with BetterC.