2个不稳定版本
0.2.0 | 2023年9月24日 |
---|---|
0.1.0 | 2023年6月24日 |
#85 in #i32
用于 cxc
11KB
194 行
🪞 cxc-derive: 使任何类型可用于cxc
use cxc::Unit;
use cxc::XcReflect;
#[derive(Default, Clone, Copy, Debug, XcReflect, PartialEq, Eq)]
pub struct Numbers5 {
pub a: i32,
pub b: i32,
pub c: i32,
pub d: i32,
pub e: i32,
}
#[test]
fn numbers_5() {
let mut unit = Unit::new();
unit.add_reflect_type::<Numbers5>();
unit.add_external_default::<Numbers5>();
unit.push_script(
"
some_numbers(); Numbers5 {
; Numbers5 { a = 4, b = 9, c = 39, ++ }
}
"
).unwrap();
let some_numbers = unit.get_fn("some_numbers").unwrap().downcast::<(), Numbers5>();
let numbers5 = some_numbers();
assert_eq!(numbers5, Numbers5 { a: 4, b: 9, c: 39, ..Default::default() });
}
支持常规结构体类型、枚举、元组、函数类型、引用、原始指针等。据我所知,它不支持联合,因为那些不在 cxc 中。如果您认为它不支持但应该支持的东西,请提交一个 问题
依赖项
~1.5MB
~36K SLoC