From e49920e19f5b4bd75fc40da7cd2ab69853b372ef Mon Sep 17 00:00:00 2001 From: sgoudham Date: Sun, 3 Apr 2022 09:25:02 +0100 Subject: [PATCH] Update docs --- README.md | 3 ++ images/unix_logs.png | Bin 9062 -> 25681 bytes src/lib.rs | 97 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 98 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ac553f2..456f2a6 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,9 @@ And much more to come... soon™! ## Quick Start +For the fastest setup possible, declarative macros are exposed that have a predefined format. +This is to allow hassle-free and painless setup that will let you log instantly! + ```rust use rall::{debug, error, fatal, info, trace, warn}; diff --git a/images/unix_logs.png b/images/unix_logs.png index 997abcb999295e146df2c0604734104208fc9d80..4e632ba67cd3fd51ac12a606a35274e9bba018b2 100644 GIT binary patch literal 25681 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 b5`33JVAP;A$rk&nkiRrl^;F7~Y+n8k&{@YG literal 9062 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 diff --git a/src/lib.rs b/src/lib.rs index f1dd7cb..ed8777d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -36,8 +36,8 @@ //! #![cfg_attr(feature = "doc-images", cfg_attr(all(), -doc =::embed_doc_image::embed_image ! ("windows_logs", "images/windows_logs.png"), -doc =::embed_doc_image::embed_image ! ("unix_logs", "images/unix_logs.png")))] +doc = ::embed_doc_image::embed_image!("windows_logs", "images/windows_logs.png"), +doc = ::embed_doc_image::embed_image!("unix_logs", "images/unix_logs.png")))] //! //! ### Windows Output //! @@ -141,6 +141,21 @@ impl Display for Level { } } +/// # Usage +/// +/// For fine-grained information, only within rare cases where full visibility of what is +/// happening in your application is needed. +/// +/// # Colour +/// +/// Blue +/// +/// # Example +/// +/// ```rust +/// # use rall::trace; +/// trace!("Hazel!"); +/// ``` #[macro_export] macro_rules! trace { ($str:expr) => {{ @@ -161,6 +176,21 @@ macro_rules! trace { }}; } +/// # Usage +/// +/// Less granular when compared to [`TRACE`](Level::TRACE) but still more than what is needed +/// for normal use. This should be used for diagnosing issues and/or troubleshooting. +/// +/// # Colour +/// +/// Green +/// +/// # Example +/// +/// ```rust +/// # use rall::debug; +/// debug!("Hazel!"); +/// ``` #[macro_export] macro_rules! debug { ($str:expr) => {{ @@ -181,6 +211,21 @@ macro_rules! debug { }}; } +/// # Usage +/// +/// Standard log level indicating that something has happened, all logs using [`INFO`](Level::INFO) +/// should be _purely informational_ and not require any further investigation. +/// +/// # Colour +/// +/// White +/// +/// # Example +/// +/// ```rust +/// # use rall::info; +/// info!("Hazel!"); +/// ``` #[macro_export] macro_rules! info { ($str:expr) => { @@ -201,6 +246,22 @@ macro_rules! info { }; } +/// # Usage +/// +/// Indicates that something _unexpected_ has happened within the program. This could represent +/// many things such as a problem or a simple disturbance. This should be used when something +/// unexpected has happened BUT the code can still continue to work. +/// +/// # Colour +/// +/// Yellow +/// +/// # Example +/// +/// ```rust +/// # use rall::warn; +/// warn!("Hazel!"); +/// ``` #[macro_export] macro_rules! warn { ($str:expr) => {{ @@ -221,6 +282,22 @@ macro_rules! warn { }}; } +/// # Usage +/// +/// Indicates that the program has hit an issue that is preventing one or more functionalities +/// from properly functioning. This should be used when the application is currently displaying +/// incorrect behaviour that _needs_ to get fixed. +/// +/// # Colour +/// +/// Dark Red +/// +/// # Example +/// +/// ```rust +/// # use rall::error; +/// error!("Hazel!"); +/// ``` #[macro_export] macro_rules! error { ($str:expr) => {{ @@ -241,6 +318,22 @@ macro_rules! error { }}; } +/// # Usage +/// +/// Indicates that the program has entered a state in which it has lost _critical business +/// functionality_ and cannot be used in production anymore. This should be used when the +/// program is in **URGENT** need of attention and absolutely should not be in a live environment. +/// +/// # Colour +/// +/// Red +/// +/// # Example +/// +/// ```rust +/// # use rall::fatal; +/// fatal!("Hazel!"); +/// ``` #[macro_export] macro_rules! fatal { ($str:expr) => {{