fnum 0.0.1

An utility trait for enum
Documentation
  • Coverage
  • 75%
    6 out of 8 items documented2 out of 6 items with examples
  • Size
  • Source code size: 9.7 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.44 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 15s Average build duration of successful builds.
  • all releases: 15s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • carrotflakes/fnum
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • carrotflakes

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

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

Copyright

Copyright (c) 2020 carrotflakes (carrotflakes@gmail.com)

License

Licensed under the MIT License.