perf(macos): remove the tagged union and use an optional insted

This commit is contained in:
utox39
2025-03-12 00:59:54 +01:00
parent 68b735179d
commit 5d26493067

View File

@@ -43,10 +43,10 @@ pub const SwapInfo = struct {
swap_usage_percentage: u64, swap_usage_percentage: u64,
}; };
pub const SwapInfoResult = union(enum) { // pub const SwapInfoResult = union(enum) {
swap_info: SwapInfo, // swap_info: SwapInfo,
swap_disabled: bool, // swap_disabled: bool,
}; // };
/// Returns the current logged-in uesr's username. /// Returns the current logged-in uesr's username.
/// Uses the environment variable `USER`. /// Uses the environment variable `USER`.
@@ -316,7 +316,7 @@ pub fn getOsInfo(allocator: std.mem.Allocator) ![]u8 {
return os_info; return os_info;
} }
pub fn getSwapInfo() !SwapInfoResult { pub fn getSwapInfo() !?SwapInfo {
var swap: c_sysctl.struct_xsw_usage = undefined; var swap: c_sysctl.struct_xsw_usage = undefined;
var size: usize = @sizeOf(c_sysctl.struct_xsw_usage); var size: usize = @sizeOf(c_sysctl.struct_xsw_usage);
@@ -330,12 +330,12 @@ pub fn getSwapInfo() !SwapInfoResult {
if (@as(u64, swap.xsu_total) != 0) { if (@as(u64, swap.xsu_total) != 0) {
swap_usage_percentage = (@as(u64, swap.xsu_used) * 100) / @as(u64, swap.xsu_total); swap_usage_percentage = (@as(u64, swap.xsu_used) * 100) / @as(u64, swap.xsu_total);
} else { } else {
return SwapInfoResult{ .swap_disabled = true }; return null;
} }
return SwapInfoResult{ .swap_info = SwapInfo{ return SwapInfo{
.swap_size = swap_size, .swap_size = swap_size,
.swap_usage = swap_usage, .swap_usage = swap_usage,
.swap_usage_percentage = swap_usage_percentage, .swap_usage_percentage = swap_usage_percentage,
} }; };
} }