xreflect 0.1.0

Basic macros for dynamic reflection of structs/enums
Documentation
use xreflect::ReflectError;
use xreflect::Reflect;
#[derive(Reflect, PartialEq)]
struct TestStruct {
	test_struct_field_a: i32,
	test_struct_field_b: u8,
}

#[derive(Reflect, PartialEq)]
enum TestEnum {
	Unit,
	Tuple(i32),
	Struct { test_enum_field: u8, test_enum_field_2: i16 },
}

#[test]
fn main() {
	let unit = TestEnum::Unit;
	assert_eq!(unit.amount_of_fields(), 0);
	assert_eq!(unit.try_get_field_at::<i32>(0), Err(ReflectError::FieldNotFound));
	let tuple = TestEnum::Tuple(33);
	assert_eq!(tuple.amount_of_fields(), 1);
	assert_eq!(tuple.try_get_field_at::<i32>(0), Ok(&33));
	let test_struct = TestEnum::Struct { test_enum_field: 71, test_enum_field_2: -21 };
	assert_eq!(test_struct.amount_of_fields(), 2);
	assert_eq!(test_struct.try_get_field::<u8>("test_enum_field"), Ok(&71u8));
}