Advanced Examples
template_with_eta_speed
{elapsed} / {eta} / {speed} with custom formatters:
bash
zig build run-template_with_eta_speedzig
.formatters = .{
.elapsed = formatElapsed,
.eta = formatEta,
.speed = formatSpeed,
},runtime_style_swap
Swap bar characters mid-run with setStyle:
bash
zig build run-runtime_style_swapruntime_frame_swap
Swap spinner frames mid-run with setFrames:
bash
zig build run-runtime_frame_swappause_resume
pause / continue_ freezing the clock:
bash
zig build run-pause_resumetext_updates
Dynamic text updates with setText / setPrefix / setSuffix:
bash
zig build run-text_updatesdynamic_messages
Text, color, and style changes driven by task phase:
bash
zig build run-dynamic_messagesinfinite_progress_bar
Auto-threaded bar with no known total, stopped via fail:
bash
zig build run-infinite_progress_barclear_on_finish
FinishConfig.clear erases the bar line; post-run output via stdoutWriter:
bash
zig build run-clear_on_finishzig
bar.finish(.{ .clear = true, .newline = true });
const w = loaders.stdoutWriter(io);
w.writeAll("completed\n") catch {};fail_and_status
fail(message) and getStatus checks:
bash
zig build run-fail_and_statuscallback_hooks
on_tick / on_finish / on_pause / on_resume hooks with ctx:
bash
zig build run-callback_hookszig
var counts = Counters{};
var bar = try loaders.ProgressBar.init(allocator, io, .{
.total = 100,
.on_tick = onTick,
.on_finish = onFinish,
.ctx = &counts,
});state_accessor
Reading state() snapshots (progress, percent, elapsed, eta, speed):
bash
zig build run-state_accessor