osc94 0.1.3

Library for handling progress bar sequences (OSC 9;4).
Documentation
  • Coverage
  • 100%
    17 out of 17 items documented2 out of 4 items with examples
  • Size
  • Source code size: 23.87 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 714.63 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 4s Average build duration of successful builds.
  • all releases: 7s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • PRO-2684/osc94
    1 0 1
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • PRO-2684

osc94

GitHub License GitHub Workflow Status GitHub Release GitHub Downloads (all assets, all releases) Crates.io Version Crates.io Total Downloads docs.rs

Library for handling progress bar sequences (OSC 9;4).

💡 Example

# #[cfg(feature = "std")]
# {
use osc94::ProgressIteratorExt;

# fn work() {}
#
fn main() {
    for _ in (0..100).with_progress() {
        work();
    }
}
# }

We've got you covered if you want finer control. See more examples in the examples directory, or check out the usage section below.

📖 Usage

This library provides different levels of abstraction for working with progress bar sequences. From high-level to low-level:

  1. [ProgressIteratorExt] and [ProgressIter]: Iterator adapters for automatic progress updates. Lives under iter.rs.
  2. [Progress]: A struct that manages progress state and ensures proper cleanup when dropped. Lives under progress.rs.
  3. [OSC94] and [ProgressState]: Low-level APIs for formatting progress sequences, giving you finer control over the output. Lives under raw.rs.

🚩 Feature flags

Default features include std.

Feature Default Description
std Yes Enables [Progress] and iterator wrappers, which write progress sequences to std::io::Write destinations.
cli No Enables the osc94 binary. This also enables std.

Disable default features to use the crate in no_std contexts:

osc94 = { version = "0.1", default-features = false }

With default features disabled, [OSC94] and [ProgressState] remain available for formatting progress sequences, while [Progress] and iterator wrappers are not exported.

📥 Binary

The provided binary allows you to play with progress bar sequences:

$ osc94
Sets the progress state and value of the progress bar for 1 second.

Usage: osc94 <state> <progress>

States:
  0/hidden
  1/normal
  2/error
  3/indeterminate
  4/warning

Progress: 0-100

It can be installed via the following methods:

Using binstall

cargo binstall osc94

Downloading from Releases

Navigate to the Releases page and download respective binary for your platform. Make sure to give it execute permissions.

Compiling from Source

cargo install osc94 --features cli

🎉 Credits