Unknown state [2025-08-04]
This commit is contained in:
73
statusline/status.zig
Normal file
73
statusline/status.zig
Normal file
@@ -0,0 +1,73 @@
|
||||
const std = @import("std");
|
||||
|
||||
const Blocks = .{
|
||||
@import("Cpu.zig").block(.{}),
|
||||
@import("Cpu.zig").block(.{}), // just testing a second block
|
||||
};
|
||||
|
||||
const freq_ms = 500;
|
||||
|
||||
pub fn main() !void {
|
||||
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
defer _ = gpa.deinit();
|
||||
const alloc = gpa.allocator();
|
||||
|
||||
var blocks: std.meta.Tuple(&Blocks) = undefined;
|
||||
var arenas: [Blocks.len]std.heap.ArenaAllocator = undefined;
|
||||
var outputs: [Blocks.len][]const u8 = undefined;
|
||||
|
||||
var combined_arena = std.heap.ArenaAllocator.init(alloc);
|
||||
defer combined_arena.deinit();
|
||||
|
||||
inline for (Blocks, &blocks, &arenas) |Block, *block, *arena| {
|
||||
block.* = try Block.init(alloc);
|
||||
arena.* = std.heap.ArenaAllocator.init(alloc);
|
||||
}
|
||||
|
||||
defer inline for (blocks, arenas) |block, arena| {
|
||||
block.deinit(alloc);
|
||||
arena.deinit();
|
||||
};
|
||||
|
||||
std.time.sleep(std.time.ns_per_s);
|
||||
|
||||
inline for (&blocks, &arenas, &outputs) |*block, *arena, *output| {
|
||||
output.* = try block.update(arena.allocator());
|
||||
}
|
||||
|
||||
_ = combined_arena.reset(.retain_capacity);
|
||||
const combined = try std.mem.join(combined_arena.allocator(), " * ", &outputs);
|
||||
try std.io.getStdOut().writeAll(combined);
|
||||
try std.io.getStdOut().writeAll("\n");
|
||||
}
|
||||
|
||||
// pub fn main() !void {
|
||||
// var arenas: [Blocks.len]std.heap.ArenaAllocator = undefined;
|
||||
// inline for (&arenas) |*arena| {
|
||||
// arena.* = std.heap.ArenaAllocator.init(alloc);
|
||||
// }
|
||||
//
|
||||
// var outs: [Blocks.len][]u8 = undefined;
|
||||
//
|
||||
// var buf = std.ArrayList(u8).init(alloc);
|
||||
// defer buf.deinit();
|
||||
// try buf.ensureTotalCapacity(512);
|
||||
//
|
||||
// while (true) {
|
||||
// inline for (&blocks, &arenas, &outs) |*block, *arena, *out| {
|
||||
// arena.reset(.{ .retain_with_limit = 100 });
|
||||
// out.* = try block.update(arena.allocator());
|
||||
// }
|
||||
//
|
||||
// std.mem.join(allocator: Allocator, separator: []const u8, slices: []const []const u8)
|
||||
//
|
||||
// // try buf.resize(0);
|
||||
// // inline for (&blocks) |*block| {
|
||||
// // try block.update();
|
||||
// // try block.print(buf.fixedWriter().any());
|
||||
// // }
|
||||
// // std.debug.print("buf: {s}\n", .{buf.items});
|
||||
// //
|
||||
// // std.time.sleep(freq_ms * std.time.ns_per_ms);
|
||||
// }
|
||||
// }
|
Reference in New Issue
Block a user