From 410009dc4629c3b91047b1f06ac89e93d42de080 Mon Sep 17 00:00:00 2001 From: TimonPost Date: Sat, 25 Aug 2018 12:00:39 +0200 Subject: [PATCH] updated doc --- Cargo.toml | 2 +- README.md | 38 ++++++++++++++--------------- docs/ReleaseNotes.md | 5 +++- examples/examples.rs | 2 -- examples/program_examples/README.md | 7 ++++-- src/common/commands/win_commands.rs | 17 ++++++------- 6 files changed, 36 insertions(+), 35 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ce80a51..d558931 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "crossterm" version = "0.4.0" -authors = ["T Post "] +authors = ["T. Post"] description = "An crossplatform terminal library for manipulating terminals." repository = "https://github.com/TimonPost/crossterm" documentation = "https://docs.rs/crossterm/" diff --git a/README.md b/README.md index f3d2fd5..7039bbe 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Crossterm | cross-platform terminal manipulating library written in rust. -[![Latest Version](https://img.shields.io/crates/v/crossterm.svg)](https://crates.io/crates/crossterm) | [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) | [![docs.rs](https://docs.rs/crossterm/badge.svg)](https://docs.rs/crossterm/) | [Examples](https://github.com/TimonPost/crossterm/tree/master/examples) | [Changelog](https://github.com/TimonPost/crossterm/blob/master/docs/UpgradeManual.md) | [Release Nodes](https://github.com/TimonPost/crossterm/tree/master/docs) +[![Latest Version](https://img.shields.io/crates/v/crossterm.svg)](https://crates.io/crates/crossterm) | [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) | [![docs.rs](https://docs.rs/crossterm/badge.svg)](https://docs.rs/crossterm/) | [Examples](https://github.com/TimonPost/crossterm/tree/master/examples) | [Changelog](https://github.com/TimonPost/crossterm/blob/master/docs/UpgradeManual.md) | [Release Nodes](https://github.com/TimonPost/crossterm/blob/master/docs/ReleaseNotes.md) |----|----|----|----|----|---- Ever got disappointed when a terminal library for rust was only written for unix systems? @@ -17,9 +17,10 @@ This crate supports all unix and windows terminals down to windows 7 (not all te - [Useful links](https://github.com/TimonPost/crossterm#useful-links) - [Features](https://github.com/TimonPost/crossterm#features) - [Examples](https://github.com/TimonPost/crossterm#examples) - - [Crossterm Wrapper](https://github.com/TimonPost/crossterm#crossterm-wrapper--see-more) - - [Styling](https://github.com/TimonPost/crossterm#styled-font--see-more) + - [Crossterm Wrapper](https://github.com/TimonPost/crossterm#crossterm-type--see-more) + - [Styling](https://github.com/TimonPost/crossterm#crossterm-type--see-more) - [Cursor](https://github.com/TimonPost/crossterm#cursor--see-more) + - [Input](https://github.com/TimonPost/crossterm#input--see-more) - [Terminal](https://github.com/TimonPost/crossterm#terminal--see-more) - [Tested Terminals](https://github.com/TimonPost/crossterm#tested-terminals) - [How it works](https://github.com/TimonPost/crossterm#how-it-works) @@ -54,16 +55,16 @@ use self::crossterm::cursor::*; // this mudule is used for terminal related actions use self::crossterm::terminal::*; // this mudule is used for input related actions -use self::crossterm::terminal::*; +use self::crossterm::input::*; ``` ## Useful Links -- Code [documentation](link). -- Code [Examples]() (see [branches](LINK_TO_BRANCHES) for previous versions) -- [Cargo Page](https://crates.io/crates/crossterm) -- [Program Examples](https://github.com/TimonPost/crossterm/tree/master/examples/program_examples) +- Code [documentation](https://docs.rs/crossterm/). +- The [Cargo Page](https://crates.io/crates/crossterm) +- More real live [examples](https://github.com/TimonPost/crossterm/tree/master/examples/program_examples) +- Detailed [examples](https://github.com/TimonPost/crossterm/tree/master/examples) # Features These are the features from this crate: @@ -94,14 +95,11 @@ These are the features from this crate: - Read async - Read async until - Exit the current process. +- Everything is multithreaded (Send, Sync) - Detailed documentation on every item. - Crossplatform -## Examples - -For detailed examples of all Crossterm functionalities check the [examples](https://github.com/TimonPost/crossterm/tree/master/examples) directory. - -### Crossterm Type | [see more](Link) +### Crossterm Type | [see more](https://github.com/TimonPost/crossterm/blob/master/examples/some_types/mod.rs) This is a wrapper for all the modules crossterm provides like terminal, cursor, styling and input. ```rust @@ -119,7 +117,7 @@ let style = crossterm.style("Black font on Green background color").with(Color:: style.paint(&screen); ``` -### Styled Font | [see more](Link) +### Styled Font | [see more](https://github.com/TimonPost/crossterm/blob/master/examples/color/mod.rs) This module provides the functionalities to style the terminal cursor. ```rust use crossterm::style::{Color, style}; @@ -161,7 +159,7 @@ style("RGB color (10,10,10) ").with(Color::Rgb { style("ANSI color value (50) ").with(Color::AnsiValue(50)).paint(&screen); ``` -### Cursor | [see more](LINK) +### Cursor | [see more](https://github.com/TimonPost/crossterm/blob/master/examples/cursor/mod.rs) This module provides the functionalities to work with the terminal cursor. ```rust @@ -206,10 +204,10 @@ cursor.blink(true) ``` -### Input | [see more](LINK) +### Input | [see more](https://github.com/TimonPost/crossterm/tree/master/examples/input) This module provides the functionalities to work with terminal input. -Check [this](link) for handling async input. +Check [this](https://github.com/TimonPost/crossterm/blob/master/examples/input/keyboard/async_input.rs) for handling async input. ```rust @@ -232,7 +230,7 @@ let mut input = input(&screen); ``` -### Terminal | [see more](LINK) +### Terminal | [see more](https://github.com/TimonPost/crossterm/blob/master/examples/terminal/terminal.rs) This module provides the functionalities to work with the terminal in general. ```rust @@ -272,7 +270,7 @@ terminal.exit(); terminal.write("Some text\n Some text on new line"); ``` -Check these links: [AlternateScreen](https://github.com/TimonPost/crossterm/blob/master/examples/Crossterm%200.3.0/terminal/alternate_screen.rs) and [RawScreen](https://github.com/TimonPost/crossterm/blob/master/examples/Crossterm%200.3.0/terminal/raw_mode.rs) for information about how to work with these features. +Check these links: [AlternateScreen](https://github.com/TimonPost/crossterm/blob/master/examples/terminal/alternate_screen.rs) and [RawScreen](https://github.com/TimonPost/crossterm/blob/master/examples/terminal/raw_mode.rs) for information about how to work with these features. ## Tested terminals @@ -308,7 +306,7 @@ I highly appreciate it when you are contributing to this crate. Also Since my native language is not English my grammar and sentence order will not be perfect. So improving this by correcting these mistakes will help both me and the reader of the docs. -Check [Contributing](link) for more info about branches and code architecture. +Check [Contributing](https://github.com/TimonPost/crossterm/blob/master/docs/Contributing.md) for more info about branches and code architecture. ## Authors diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 68fbe3f..f3c9ec0 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -1,10 +1,13 @@ # Features / Fixes in crossterm 0.4.0 - Input support (read_line, read_char, read_async, read_until_async) - Styling module improved -- This create supports multithreading (`Send`) +- Everything is multithreaded (`Send`, `Sync`) - Performance enhancements: removed mutexes, removed state manager, removed context type removed unnecessarily RC types. - Bug fix resetting console color. - Bug fix whit undoing raw modes. +- More correct error handling. +- Overall commend improvement. +- Overall refactor of code. # Features in crossterm 0.3.0 diff --git a/examples/examples.rs b/examples/examples.rs index fa9a323..c96e1b7 100644 --- a/examples/examples.rs +++ b/examples/examples.rs @@ -19,6 +19,4 @@ use std::io::Write; use std::{thread,time}; fn main() { - ::crossterm::terminal::terminal(&::crossterm::Screen::default()).terminal_size(); - thread::sleep(time::Duration::from_millis(2000)); } diff --git a/examples/program_examples/README.md b/examples/program_examples/README.md index 7ef9a13..8f13169 100644 --- a/examples/program_examples/README.md +++ b/examples/program_examples/README.md @@ -7,15 +7,18 @@ The programs are: - First depth search: This is an search algorithm implemented visually. This program uses the following functionalities: cursor movement, coloring, alternate screen and terminal clearing. + To run this use `cargo run` in the directory of first depth search. - Snake This is a snake game implemented with this library. - + To run this use `cargo run` in the directory of snake. - Command Bar: This is a terminal application where multiple threads write to the output while you can enter commands asynchronously. + To run this use `cargo run --example command_bar` - Logging: - This is an async logging program to demonstrate asynchronous logging with an queue. \ No newline at end of file + This is an async logging program to demonstrate asynchronous logging with an queue. + To run this use `cargo run --example logging` \ No newline at end of file diff --git a/src/common/commands/win_commands.rs b/src/common/commands/win_commands.rs index 4ac373b..09a0c2c 100644 --- a/src/common/commands/win_commands.rs +++ b/src/common/commands/win_commands.rs @@ -79,8 +79,7 @@ impl RawModeCommand { pub fn new() -> Self { RawModeCommand { - - mask: ENABLE_WRAP_AT_EOL_OUTPUT | ENABLE_LINE_INPUT + mask: ENABLE_WRAP_AT_EOL_OUTPUT | ENABLE_LINE_INPUT } } } @@ -100,13 +99,13 @@ impl RawModeCommand { let new_mode = dw_mode & !self.mask; -// if !kernel::set_console_mode(&stdout, new_mode) { -// return Err(Error::new( -// ErrorKind::Other, -// "Could not set console mode when enabling raw mode", -// )); -// } -self.disable(); + if !kernel::set_console_mode(&stdout, new_mode) { + return Err(Error::new( + ErrorKind::Other, + "Could not set console mode when enabling raw mode", + )); + } + Ok(()) }