const std = @import("std"); const io = std.io; const heap = std.heap; const json = std.json; const battery = @import("modules/battery.zig"); const calendar = @import("modules/calendar.zig"); const display = @import("modules/display.zig"); const uptime = @import("modules/uptime.zig"); const Module = @import("module.zig"); pub fn main() !void { var arena = heap.ArenaAllocator.init(heap.page_allocator); defer arena.deinit(); const stdout_file = std.io.getStdOut().writer(); var bw = std.io.bufferedWriter(stdout_file); const stdout = bw.writer(); try stdout.print("{{\"version\":1}}\n[\n", .{}); try bw.flush(); var modules = [_]Module{ uptime.init(arena.allocator()).module, display.init(arena.allocator()).module, battery.init(arena.allocator()).module, calendar.init(arena.allocator()).module, }; while (true) { try stdout.print("[", .{}); for (modules) |module| { try json.stringify(try module.getJson(), .{ .emit_null_optional_fields = false }, stdout); try stdout.print(",", .{}); } try stdout.print("],\n", .{}); try bw.flush(); _ = arena.reset(.retain_capacity); std.time.sleep(1000_000_000); } }