# fnum
Fnum is an utility trait for enum, that provides `size_of_variant` method.
`size_of_variant` returns the minimum size that specified variant requiring.
## Usage
``` rust
use fnum::Fnum;
#[derive(Fnum)]
enum MyEnum {
A(u64),
B(String),
C(u64, u32, u32, u32),
D {
foo: u32,
bar: String,
}
}
fn main() {
dbg!(MyEnum::size_of_variant(0)); // => 16 (bytes required by `MyEnum::A(..)`)
dbg!(MyEnum::size_of_variant(1)); // => 32 (bytes required by `MyEnum::B(..)`)
dbg!(MyEnum::size_of_variant(2)); // => 24 (bytes required by `MyEnum::C(..)`)
dbg!(MyEnum::size_of_variant(3)); // => 32 (bytes required by `MyEnum::D{..}`)
}
```
## Author
* carrotflakes (carrotflakes@gmail.com)
## Copyright
Copyright (c) 2020 carrotflakes (carrotflakes@gmail.com)
## License
Licensed under the MIT License.