#string #error #error-logging #printing #color-string #libary #term-color

PrintLib

The ultimative printing libary for Rust #cli #string #color #term_color

11 stable releases

1.5.2 Mar 18, 2024
1.5.1 Mar 8, 2024

#112 in Debugging

Download history 2/week @ 2024-09-16 15/week @ 2024-09-23 6/week @ 2024-09-30

777 downloads per month
Used in objgrep

MIT license

32KB
705 lines

PrintLib

PrintLib is a libary for rust which makes printing easy.

This document is and (works) only for the newest PrintLib version

Github reposentory

Install

To add PrintLib to your project, go into your project folder and execute:

cargo add PrintLib

Then you can import PrintLib just like other crates:

use PrintLib::*;

Examples

Link to the examples: https://github.com/Toni-Graphics/PrintLib/tree/master/examples/

Documentation

This is the official documentation for the PrintLib.

Error

The module PrintLib::error is the module with which you can build error messages.

The ErrorFactory class

Function name Parmaters Description
new ecode: String, msg: String This is the initializer of the class. It creates a new ErrorFactory with the error-code ecode and the error message msg
add_code_line line: String, display_line_no: bool, line_no: usize, display_add: bool This function adds a new line to the error message. The parameter line is the code line of which the error message is specified. display_lin_no means if the line number (parameter line_no is the line number) is shown. display_add means if a +++ needs to be shown (it is good for showing potential fixes).
``add_where</code where_start: usize, where_length: usize, where_msg_b: bool, where_msg: String This function adds an string to the error message to show where the error is. where_start means where the showing should start (e.g. where_start = 3 means it starts after the 3rd character). where_length means how long the showing should be. where_msg_b: when true it showes a string to the right of the showing. When false it shows just the showing. where_msg is the msg right to the showing (if where_msg_b is true)
add_arrow file: String, line: usize, where_start: usize Add adds an arrow in the format -->{file}:{line}:{where_start} to the error message
add_arrow_w file: String, line: usize, Add adds an arrow in the format -->{file}:{line} to the error message
print Prints the error message

Logger

The module PrintLib::logr is the module with which you can use the logger.

The Logger Class

Function name Parmaters Description
new conf Is the initializer of the class. The parameter conf is the LoggerConfig for the class. Returns a new Instance.
debug msg: String Prints the message msg in level debug
info msg: String Prints the message msg in level info
warn msg: String Prints the message msg in level warning
error msg: String Prints the message msg in level error

The def function

Returns Logger with the default configuration

The LoggerConfig struct

Name Type Description
time bool If the time should be presented in logger messages
info_string String String which indicates that the message is level info (Normal: [INFO ])
debug_string String String which indicates that the message is level debug (Normal: [DEBUG ])
warn_string String String which indicates that the message is level warn (Normal: [WARN!] )
err_string String String which indicates that the message is level error (Normal: [[ERR!] ])
info_color LoggerColor The color in which the level indicator ([xyz]) at level info is
debug_color LoggerColor The color in which the level indicator ([xyz]) at level debug is
warn_color LoggerColor The color in which the level indicator ([xyz]) at level warn is
err_color LoggerColor The color in which the level indicator ([xyz]) at level err is

The LoggerColor struct

Name Type Description
r u8 The red channel
g u8 The green channel
b u8 The blue channel

Color

The module PrintLib::colorize is the module with which you can colorize your &strs.

The Colorize trait

Function name Parameters Return type Description
color &self, r: i16, g: i16, b: 116 String Turns the colorof the string to the specified rgb-values
black &self String Makes the string black
red &self String Makes the string red
green &self String Makes the string green
yellow &self String Makes the string yellow
blue &self String Makes the string blue
magenta &self String Makes the string magenta
cyan &self String Makes the string cyan
white &self String Makes the string white
gray &self String Makes the string gray
bold &self String Makes the string bold
italic &self String Makes the string italic
underline &self String Makes the string underline
strike &self String Makes the string strike
bg_black &self String Makes the bg of the string black
bg_red &self String Makes the bg of the string red
bg_green &self String Makes the bg of the string green
bg_yellow &self String Makes the bg of the string yellow
bg_blue &self String Makes the bg of the string blue
bg_magenta &self String Makes the bg of the string magenta
bg_cyan &self String Makes the bg of the string cyan
bg_white &self String Makes the bg of the string white
bg_gray &self String Makes the bg of the string gray
bg_bold &self String Makes the bg of the string bold

The Style struct

Name Type Description
bold bool Is the string bold
italic bool Is the string italic
underlined bool Is the string underlined
strike bool Is the string striketrough

The ColoredString struct

Name Type Description
r i16 The red color channel
g i16 The red green channel
b i16 The red blue channel

Side note: If the red channel is -1 there will be no color, but instead a style (like bold, italic, etc.) applied to

Function name Parameters Return type Description
new r: i16, g: i16, b: i16, _attr: Style, _str: &str Colored String Initialiser of the colored string class.
to_string String Converts the ColoredString to a normal String

The ColorEncoder

ColorEncoder::encode is the function with wich you can turn a simple string with the color names in it into an formated string.

Args: str: &str or String

Description: Formats the given string in the correct color which are specified in the string

Colors:

How it looks like in the string Actual color
<black> black
<red> red
<blue> blue
<green> green
<yellow> yellow
<magenta> magenta
<cyan> cyan
<white> white
<gray> gray
<bold> bold
<italic> italic
<underline> underline
<strike> striketrough
<&hex> hex color

Emojis

The module PrintLib::emoji is the module with which you can make printing emojis easyer.

The class EmojiMaker

Function name Parameters Return type Description
new EmojiMaker Creates a new EmojiMaker
add name: &str, emoji: &str Adds an new emoji with the name name
get name: str String Gets the emoji with the name name from the intern hashmap

Arg

The module PrintLib::arg is the module with which makes evrything releated to args easyer.

The class UsageFactory

Function name Parameters Return type Description
new name: &str, app_name: &str UsageFactory Creates a new UsageFactory. name is the name of your product/application. app_name is how you would run your programm (e.g for Cargo it would be cargo).
add_cmd &mut self, name: &str, description: &str Adds a new command with the name name and description description
add_opt &mut self, name: &str, description: &str Adds a new option with the name name and description description
print &mut self Prints the usage

Errors

Known:

When bg is changed color do not work proberly

Dependencies

~1MB
~18K SLoC