Previously tagged unions only supported `str` tag values. We now also
support `int` tag values, with a few caveats:
- A single `Union` of `Struct` types cannot mix both `int` and `str` tag
types.
- Integer `tag` values currently only support values that fit in an
int64 (-2**63 <= tag <= 2**63 - 1). This restriction has also been added
to `IntEnum` and integer `Literal` types (previously these supported up
to a `uint64`). This restriction makes the implementation easier, but
can be removed if needed in the future. For now a `NotImplementedError`
is raised if the user attempts to use out-of-range integer values,
pointing them to raise an issue on GitHub if they need the feature.
Previously tagged unions only supported str tag values. We now also
support int tag values, with a few caveats:
types.
int64 (-2**63 <= tag <= 2**63 - 1). This restriction has also been added
to IntEnum and integer Literal types (previously these supported up
to a uint64). This restriction makes the implementation easier, but
can be removed if needed in the future. For now a NotImplementedError
is raised if the user attempts to use out-of-range integer values,
pointing them to raise an issue on GitHub if they need the feature.
Fixes #134.