roc/test_struct_sizes.zig
2025-10-11 11:32:12 -04:00

33 lines
1.9 KiB
Zig

const std = @import("std");
const can = @import("can");
const ModuleEnv = can.ModuleEnv;
const CommonEnv = @import("base").CommonEnv;
const TypeStore = @import("types").Store;
pub fn main() !void {
const stdout = std.io.getStdOut().writer();
try stdout.print("=== Struct Size Analysis ===\n", .{});
try stdout.print("Platform: {s}\n\n", .{@tagName(std.builtin.cpu.arch)});
try stdout.print("ModuleEnv struct sizes:\n", .{});
try stdout.print(" ModuleEnv: {} bytes\n", .{@sizeOf(ModuleEnv)});
try stdout.print(" ModuleEnv.Serialized: {} bytes\n\n", .{@sizeOf(ModuleEnv.Serialized)});
try stdout.print("CommonEnv struct sizes:\n", .{});
try stdout.print(" CommonEnv: {} bytes\n", .{@sizeOf(CommonEnv)});
try stdout.print(" CommonEnv.Serialized: {} bytes\n\n", .{@sizeOf(CommonEnv.Serialized)});
try stdout.print("TypeStore struct sizes:\n", .{});
try stdout.print(" TypeStore: {} bytes\n", .{@sizeOf(TypeStore)});
try stdout.print(" TypeStore.Serialized: {} bytes\n\n", .{@sizeOf(TypeStore.Serialized)});
try stdout.print("Field offsets in ModuleEnv.Serialized:\n", .{});
try stdout.print(" gpa_placeholder: offset={}\n", .{@offsetOf(ModuleEnv.Serialized, "gpa_placeholder")});
try stdout.print(" common: offset={}\n", .{@offsetOf(ModuleEnv.Serialized, "common")});
try stdout.print(" types: offset={}\n", .{@offsetOf(ModuleEnv.Serialized, "types")});
try stdout.print(" module_kind: offset={}\n", .{@offsetOf(ModuleEnv.Serialized, "module_kind")});
try stdout.print(" all_defs: offset={}\n", .{@offsetOf(ModuleEnv.Serialized, "all_defs")});
try stdout.print(" all_statements: offset={}\n", .{@offsetOf(ModuleEnv.Serialized, "all_statements")});
try stdout.print(" exports: offset={}\n", .{@offsetOf(ModuleEnv.Serialized, "exports")});
}