Add crate int-to-c-enum

This commit is contained in:
Jianfeng Jiang
2023-04-17 15:39:12 +08:00
committed by Tate, Hongliang Tian
parent aec46295c4
commit 6ecc7dc557
9 changed files with 256 additions and 0 deletions

View File

@ -0,0 +1,22 @@
use int_to_c_enum::TryFromInt;
#[derive(TryFromInt, Debug, PartialEq, Eq)]
#[repr(u8)]
enum Color {
Red = 1,
Blue = 2,
Green = 3,
}
#[test]
fn conversion() {
let color = Color::try_from(1).unwrap();
println!("color = {color:?}");
assert!(color == Color::Red);
}
#[test]
fn invalid_value() {
let color = Color::try_from(4);
assert!(color.is_err());
}