diff --git a/src/macos/hardware.zig b/src/macos/hardware.zig index 21f3153..378fc95 100644 --- a/src/macos/hardware.zig +++ b/src/macos/hardware.zig @@ -10,24 +10,40 @@ pub const CpuInfo = struct { cpu_name: []u8, cpu_cores: i32, cpu_max_freq: f64, + + pub fn toStr(self: CpuInfo, buf: []u8) ![]u8 { + return std.fmt.bufPrint(buf, "Cpu: {s} ({}) @ {d:.2} GHz", .{ self.cpu_name, self.cpu_cores, self.cpu_max_freq }); + } }; pub const GpuInfo = struct { gpu_name: []u8, gpu_cores: i32, gpu_freq: f64, + + pub fn toStr(self: GpuInfo, buf: []u8) ![]u8 { + return std.fmt.bufPrint(buf, "Gpu: {s} ({}) @ {d:.2} GHz", .{ self.gpu_name, self.gpu_cores, self.gpu_freq }); + } }; pub const RamInfo = struct { ram_size: f64, ram_usage: f64, ram_usage_percentage: u8, + + pub fn toStr(self: RamInfo, buf: []u8) ![]u8 { + return std.fmt.bufPrint(buf, "Ram: {d:.2} / {d:.2} GiB ({}%)", .{ self.ram_usage, self.ram_size, self.ram_usage_percentage }); + } }; pub const SwapInfo = struct { swap_size: f64, swap_usage: f64, swap_usage_percentage: u64, + + pub fn toStr(self: SwapInfo, buf: []u8) ![]u8 { + return std.fmt.bufPrint(buf, "Swap: {d:.2} / {d:.2} GiB ({}%)", .{ self.swap_usage, self.swap_size, self.swap_usage_percentage }); + } }; pub const DiskInfo = struct { @@ -35,6 +51,10 @@ pub const DiskInfo = struct { disk_size: f64, disk_usage: f64, disk_usage_percentage: u8, + + pub fn toStr(self: DiskInfo, buf: []u8) ![]u8 { + return std.fmt.bufPrint(buf, "Disk ({s}): {d:.2} / {d:.2} GB ({}%)", .{ self.disk_path, self.disk_usage, self.disk_size, self.disk_usage_percentage }); + } }; pub fn getCpuInfo(allocator: std.mem.Allocator) !CpuInfo { diff --git a/src/macos/network.zig b/src/macos/network.zig index b8da949..b8cfef4 100644 --- a/src/macos/network.zig +++ b/src/macos/network.zig @@ -8,6 +8,10 @@ const c_socket = @cImport(@cInclude("sys/socket.h")); pub const NetInfo = struct { interface_name: []u8, ipv4_addr: []u8, + + pub fn toStr(self: NetInfo, buf: []u8) ![]u8 { + return std.fmt.bufPrint(buf, "Local IP ({s}): {s}", .{ self.interface_name, self.ipv4_addr }); + } }; pub fn getNetInfo(allocator: std.mem.Allocator) !std.ArrayList(NetInfo) { diff --git a/src/macos/system.zig b/src/macos/system.zig index af2b5ec..f7c8857 100644 --- a/src/macos/system.zig +++ b/src/macos/system.zig @@ -7,11 +7,19 @@ pub const SystemUptime = struct { days: i8, hours: i8, minutes: i8, + + pub fn toStr(self: SystemUptime, buf: []u8) ![]u8 { + return std.fmt.bufPrint(buf, "Uptime: {} days, {} hours, {} minutes", .{ self.days, self.hours, self.minutes }); + } }; pub const KernelInfo = struct { kernel_name: []u8, kernel_release: []u8, + + pub fn toStr(self: KernelInfo, buf: []u8) ![]u8 { + return std.fmt.bufPrint(buf, "Kernel: {s} {s}", .{ self.kernel_name, self.kernel_release }); + } }; // Returns the hostname.