Skip to content

Contributor advice on the use of non_exhaustive enums #8044

Open
@james7132

Description

@james7132

What problem does this solve or what need does it fill?

Any addition of a variant to a public enum is a semver incompatible breaking change, as seen in #8042. If we're looking to make patch releases a regular thing, and as the engine heads towards stability, a common policy on the use of the non_exhaustive attribute on public enums should be in place.

What solution would you like?

Set up a common policy of some kind. Document it well. Enforce it during code review.

What alternative(s) have you considered?

Leave all of our enums as is, let changes be breaking.

Additional context

https://doc.rust-lang.org/reference/attributes/type_system.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-MetaAbout the project itselfC-Code-QualityA section of code that is hard to understand or change

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions