progress

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

README (1277B)


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