fast_enum_conversion 0.1.0

Zerocost conversion between enums
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 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.