# Fast enum conversion
This crate provides zerocost conversion between enums. An enum `Src` can be converted to another enum `Dest` when the following satisfies:
- For each variants of `Src`, counterparts exist in `Dest`.
Here, an variant ans its "counterpart" satisfies all of them:
- Both has the same tag names
- `Fields` of both variants are equal. For example, one has structural fields, another should have the same.
- All corresponding type of `Fields` are the same.
It performs zerocost conversion when following satisfies for all counterparts:
- The [`std::mem::Discriminant`] of them are equal.
- The fields has same offsets.
- Have consistent memory layouts.