Crates.io | fnum |
lib.rs | fnum |
version | 0.0.1 |
source | src |
created_at | 2020-12-30 12:51:32.627867 |
updated_at | 2020-12-30 12:51:32.627867 |
description | An utility trait for enum |
homepage | |
repository | https://github.com/carrotflakes/fnum |
max_upload_size | |
id | 329227 |
size | 9,700 |
Fnum is an utility trait for enum, that provides size_of_variant
method.
size_of_variant
returns the minimum size that specified variant requiring.
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{..}`)
}
Copyright (c) 2020 carrotflakes (carrotflakes@gmail.com)
Licensed under the MIT License.