forked from mirror/vulkan-zig
clean up Dispatch construction a little
This commit is contained in:
@@ -1027,7 +1027,7 @@ fn Renderer(comptime WriterType: type) type {
|
|||||||
\\
|
\\
|
||||||
\\ const Self = @This();
|
\\ const Self = @This();
|
||||||
\\ pub const commands = cmds;
|
\\ pub const commands = cmds;
|
||||||
\\ pub const Dispatch = Dispatch: {{
|
\\ pub const Dispatch = blk: {{
|
||||||
\\ @setEvalBranchQuota(10_000);
|
\\ @setEvalBranchQuota(10_000);
|
||||||
\\ const TypeInfo = std.builtin.TypeInfo;
|
\\ const TypeInfo = std.builtin.TypeInfo;
|
||||||
\\ const fields_len = fields_len: {{
|
\\ const fields_len = fields_len: {{
|
||||||
@@ -1037,27 +1037,25 @@ fn Renderer(comptime WriterType: type) type {
|
|||||||
\\ }}
|
\\ }}
|
||||||
\\ break :fields_len fields_len;
|
\\ break :fields_len fields_len;
|
||||||
\\ }};
|
\\ }};
|
||||||
\\ var fields_array: [fields_len]TypeInfo.StructField = undefined;
|
\\ var fields: [fields_len]TypeInfo.StructField = undefined;
|
||||||
\\ var fields: []TypeInfo.StructField = fields_array[0..];
|
\\ var i: usize = 0;
|
||||||
\\ fields.len = 0;
|
|
||||||
\\
|
|
||||||
\\ for (std.enums.values({0s}Command)) |cmd_tag| {{
|
\\ for (std.enums.values({0s}Command)) |cmd_tag| {{
|
||||||
\\ if (@field(cmds, @tagName(cmd_tag))) {{
|
\\ if (@field(cmds, @tagName(cmd_tag))) {{
|
||||||
\\ const PfnType = cmd_tag.PfnType();
|
\\ const PfnType = cmd_tag.PfnType();
|
||||||
\\ fields.len += 1;
|
\\ fields[i] = .{{
|
||||||
\\ fields[fields.len - 1] = TypeInfo.StructField{{
|
|
||||||
\\ .name = cmd_tag.symbol(),
|
\\ .name = cmd_tag.symbol(),
|
||||||
\\ .field_type = PfnType,
|
\\ .field_type = PfnType,
|
||||||
\\ .default_value = null,
|
\\ .default_value = null,
|
||||||
\\ .is_comptime = false,
|
\\ .is_comptime = false,
|
||||||
\\ .alignment = @alignOf(PfnType),
|
\\ .alignment = @alignOf(PfnType),
|
||||||
\\ }};
|
\\ }};
|
||||||
|
\\ i += 1;
|
||||||
\\ }}
|
\\ }}
|
||||||
\\ }}
|
\\ }}
|
||||||
\\ break :Dispatch @Type(.{{
|
\\ break :blk @Type(.{{
|
||||||
\\ .Struct = .{{
|
\\ .Struct = .{{
|
||||||
\\ .layout = .Auto,
|
\\ .layout = .Auto,
|
||||||
\\ .fields = fields,
|
\\ .fields = &fields,
|
||||||
\\ .decls = &[_]std.builtin.TypeInfo.Declaration{{}},
|
\\ .decls = &[_]std.builtin.TypeInfo.Declaration{{}},
|
||||||
\\ .is_tuple = false,
|
\\ .is_tuple = false,
|
||||||
\\ }},
|
\\ }},
|
||||||
|
|||||||
Reference in New Issue
Block a user