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.
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.
List of examples
* Basic usage * Matching with an overload set * Recursive SumTypes * Memory corruption (why assignment can be @system) * Avoiding unintentional matches * Multiple dispatch