SumType is a generic sum type for modern D. It is meant as an alternative to
`std.variant.Algebraic`.

Features:
- Pattern matching, including support for structural matching (★)
  - Self-referential types, using `This`
  - Works with pure, @safe, @nogc, and immutable (★)
  - Zero runtime overhead compared to hand-written C
    - No heap allocation
    - Does not rely on runtime type information (`TypeInfo`) (★)

Starred features (★) are those that are missing from `Algebraic`.

Code examples are available in the documentation (linked below).

New since the last announced version, 0.7.0:
  - SumType now accepts non-copyable types as members.
- A new template, `canMatch`, allows querying the matching logic directly. - A bug in the `==` operator of self-referential SumTypes has been fixed. - An exception-safety bug in SumType's assignment operator has been fixed. - The documentation and examples have been given some additional polish.

Special thanks to Atila Neves and John Colvin for their contributions to this
release.

Links:
  - Documentation: https://pbackus.github.io/sumtype/sumtype.html
  - DUB: https://sumtype.dub.pm
  - Github: https://github.com/pbackus/sumtype

Reply via email to