1 unstable release
0.1.0 | Jan 18, 2024 |
---|
#4 in #zerocost
7KB
63 lines
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 inDest
.
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.
Dependencies
~1.5MB
~38K SLoC