complex.zig (1131B)
1 const std = @import("std"); 2 const ProgressSpinner = @import("progress").Spinner; 3 4 pub fn main(init: std.process.Init) !void { 5 var stdout_buf: [4096]u8 = undefined; 6 var stdout_writer = std.Io.File.stdout().writer(init.io, &stdout_buf); 7 var ps = ProgressSpinner.init(&stdout_writer, .{ 8 .description = "Task 1", 9 .symbols = &[_]u21{ '⣾', '⣷', '⣯', '⣟', '⡿', '⢿', '⣻', '⣽' }, 10 .completion_character = '✓', 11 }); 12 13 var iterations: usize = 0; 14 while (!ps.isFinished()) { 15 iterations += 1; 16 try ps.render(); 17 18 if (iterations == 10) ps.updateDescription("Task 1.1"); 19 if (iterations == 13) ps.updateDescription("Task 1.2"); 20 if (iterations == 20) try ps.updateDescriptionNewline("Task 2.0"); 21 if (iterations == 23) try ps.updateDescriptionNewline("Task 3.0"); 22 if (iterations == 26) ps.updateDescription("Task 3.1"); 23 if (iterations == 30) try ps.updateDescriptionNewline("Task 4.0"); 24 if (iterations == 40) try ps.finish(); 25 26 try std.Io.sleep(init.io, std.Io.Duration.fromMilliseconds(150), .awake); 27 } 28 }