add reflection example
parent
300c8b0c36
commit
d8ea7fbd70
@ -0,0 +1,24 @@
|
||||
const std = @import("std");
|
||||
|
||||
const Header = struct {
|
||||
magic: u32,
|
||||
name: []const u8,
|
||||
};
|
||||
|
||||
pub fn main() void {
|
||||
printInfoAboutStruct(Header);
|
||||
}
|
||||
|
||||
fn printInfoAboutStruct(comptime T: type) void {
|
||||
const info = @typeInfo(T);
|
||||
inline for (info.Struct.fields) |field| {
|
||||
std.debug.print(
|
||||
"{} has field called {} with type {}\n",
|
||||
.{
|
||||
@typeName(T),
|
||||
field.name,
|
||||
@typeName(field.field_type),
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue