progress

thread safe progress bar and spinner library for zig
git clone git://brookjeynes.dev/bjeynes/progress.git
Log | Files | Refs | README | LICENSE

README (1198B)


      1 progress
      2 ========
      3 
      4 Thread safe progress bar and spinner library.
      5 
      6 
      7 Installation
      8 ------------
      9 
     10 	1. Fetch the package
     11 
     12 		$ zig fetch --save git+https://git.brookjeynes.dev/bjeynes/progress.git
     13 
     14 	2. Add to your build.zig
     15 
     16 		const progress = b.dependency("progress", .{}).module("progress");
     17 		exe.root_module.addImport("progress", progress);
     18 
     19 
     20 Dependencies
     21 ------------
     22 
     23 - Zig compiler (>= 0.16.0)
     24 
     25 
     26 Usage
     27 -----
     28 
     29 More examples can be found in examples/
     30 
     31 	const std = @import("std");
     32 	const ProgressBar = @import("progress").Bar;
     33 	const ProgressSpinner = @import("progress").Spinner;
     34 
     35 	pub fn bar() !void {
     36 		const stdout = std.io.getStdOut().writer();
     37 		var pb = ProgressBar.init(10, stdout.any(), .{});
     38 
     39 		while (!pb.isFinished()) {
     40 			pb.add(1);
     41 			try pb.render();
     42 
     43 			std.time.sleep(std.time.ns_per_ms * 150);
     44 		}
     45 	}
     46 
     47 	pub fn spinner() !void {
     48 		const stdout = std.io.getStdOut().writer();
     49 		var ps = ProgressSpinner.init(stdout.any(), .{
     50 			.symbols = ProgressSpinner.PredefinedSymbols.default,
     51 		});
     52 
     53 		var iterations: usize = 0;
     54 		while (!ps.isFinished()) {
     55 			iterations += 1;
     56 			try ps.render();
     57 
     58 			if (iterations == 20) try ps.finish();
     59 
     60 			std.time.sleep(std.time.ns_per_ms * 150);
     61 		}
     62 	}