# show-my-errors ![License](https://img.shields.io/crates/l/show-my-errors?style=flat-square) [![Version](https://img.shields.io/crates/v/show-my-errors?style=flat-square)](https://crates.io/crates/show-my-errors) [![Build status](https://img.shields.io/github/workflow/status/GoldsteinE/show-my-errors/Build%20%26%20test?style=flat-square)](https://github.com/GoldsteinE/show-my-errors/actions) This is a library to display simple errors in colorful, rustc-like way. It can't show multi-line errors or draw arrows between parts of code, but its interface is simple and easy to use. If you want something more complex, you probably should use [annotate-snippets](https://docs.rs/annotate-snippets), which is used by rustc itself. ![example output](/example.png) ### Basic usage Entry point of this library is `AnnotationList`. You should create it, add some errors and then use `.show_stderr()` or `.show_stdout()` with some `Stylesheet` to display the message. ```rust let mut list = AnnotationList::new("hello.txt", "Hello world!"); list .warning(4..7, "punctuation problem", "you probably forgot a comma")? .info(0..0, "consider adding some translations", None)?; assert_eq!(list.to_string()?, r#" warning: punctuation problem --> hello.txt:1:5 | 1 | Hello world! | ^^^ you probably forgot a comma info: consider adding some translations --> hello.txt:1:1 | 1 | Hello world! | "#); ``` #### License Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. `SPDX-License-Identifier: MIT OR Apache-2.0`