我有一个自定义结构体,其如下所示:
struct MyStruct {
first_field: i32,
second_field: String,
third_field: u16,
}
是否有可能通过编程方式获取结构体字段的数量(例如,通过调用 field_count()
方法):
let my_struct = MyStruct::new(10, "second_field", 4);
let field_count = my_struct.field_count(); // Expecting to get 3
对于这个结构体:
struct MyStruct2 {
first_field: i32,
}
...以下调用应该返回1
:
let my_struct_2 = MyStruct2::new(7);
let field_count = my_struct2.field_count(); // Expecting to get count 1
是否有类似于field_count()
的API,还是只能通过宏获取?
如果可以用宏实现,应该如何实现?