PrintLib 1.3.1

The ultimative printing libary for Rust
Documentation
# PrintLib

PrintLib is a libary for rust which makes printing easy.


> This document is and (works) only for the newest ``PrintLib`` version
> 
[Github reposentory](https://github.com/Toni-Graphics/PrintLib)

## Install

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

```bash
cargo add PrintLib
```

Then you can import PrintLib just like other crates:

```rust
use PrintLib::*;
```

## Examples

In the example folder you can see two examples:

- ``error_test``: Test usage of the ErrorFactory
- ``logger_test``: Test usage of the Logger

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_arrowW``|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 ``&str``s.

#### The ``Color`` struct

The color struct is the struct in which rgb color can be stored.
| Parameter name | Type | Description |
|----------------|------|-------------|
|``r``|``u8``|The red color channel.|
|``g``|``u8``|The green color channel.|
|``b``|``u8``|The blue color channel.|

#### The ``Colorize`` trait

| Function name | Parameters | Return type | Description |
|---------------|------------|-----------|------------|
|``color``|``&self``, clr: ``Color``|``String``|Turns the colorof the string to the specified rgb-values in ``clr``|
|``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|