diff options
Diffstat (limited to 'vendor/console/README.md')
-rw-r--r-- | vendor/console/README.md | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/vendor/console/README.md b/vendor/console/README.md new file mode 100644 index 0000000..9a046d8 --- /dev/null +++ b/vendor/console/README.md @@ -0,0 +1,76 @@ +# `console` + +[![Build Status](https://github.com/console-rs/console/workflows/CI/badge.svg?branch=master)](https://github.com/console-rs/console/actions?query=workflow%3ACI) +[![Crates.io](https://img.shields.io/crates/d/console.svg)](https://crates.io/crates/console) +[![License](https://img.shields.io/github/license/console-rs/console)](https://github.com/console-rs/console/blob/master/LICENSE) +[![rustc 1.48.0](https://img.shields.io/badge/rust-1.48%2B-orange.svg)](https://img.shields.io/badge/rust-1.48%2B-orange.svg) +[![Documentation](https://docs.rs/console/badge.svg)](https://docs.rs/console) + +**console** is a library for Rust that provides access to various terminal +features so you can build nicer looking command line interfaces. It +comes with various tools and utilities for working with Terminals and +formatting text. + +Best paired with other libraries in the family: + +* [dialoguer](https://docs.rs/dialoguer) +* [indicatif](https://docs.rs/indicatif) + +## Terminal Access + +The terminal is abstracted through the `console::Term` type. It can +either directly provide access to the connected terminal or by buffering +up commands. A buffered terminal will however not be completely buffered +on windows where cursor movements are currently directly passed through. + +Example usage: + +```rust +use std::thread; +use std::time::Duration; + +use console::Term; + +let term = Term::stdout(); +term.write_line("Hello World!")?; +thread::sleep(Duration::from_millis(2000)); +term.clear_line()?; +``` + +## Colors and Styles + +`console` automaticaly detects when to use colors based on the tty flag. It also +provides higher level wrappers for styling text and other things that can be +displayed with the `style` function and utility types. + +Example usage: + +```rust +use console::style; + +println!("This is {} neat", style("quite").cyan()); +``` + +You can also store styles and apply them to text later: + +```rust +use console::Style; + +let cyan = Style::new().cyan(); +println!("This is {} neat", cyan.apply_to("quite")); +``` + +## Working with ANSI Codes + +The crate provides the function `strip_ansi_codes` to remove ANSI codes +from a string as well as `measure_text_width` to calculate the width of a +string as it would be displayed by the terminal. Both of those together +are useful for more complex formatting. + +## Unicode Width Support + +By default this crate depends on the `unicode-width` crate to calculate +the width of terminal characters. If you do not need this you can disable +the `unicode-width` feature which will cut down on dependencies. + +License: MIT |