This crate implements rust enums which are plain-old-data that can be taken from any value, by inserting an "Unknown" option to cover anything that isn't an actual variant's discriminant.
See the documentation for more details.