murmur

Crates.iomurmur
lib.rsmurmur
version2.0.0
sourcesrc
created_at2023-11-26 03:21:39.072118
updated_at2023-12-26 07:29:31.527986
descriptionThis library provides a simple and flexible way to format colored messages with optional `NerdFonts` or `Unicode` icons.
homepage
repositoryhttps://github.com/andretcarpizo/murmur
max_upload_size
id1048777
size59,919
Andret Carpizo (andretcarpizo)

documentation

https://docs.rs/murmur

README

murmur

GitHub Crates.io Documentation GitHub Actions License

A flexible library to build messages with NerdFonts or Unicode icons.

Table of Contents

  1. Intro
  2. IconKind Variants
  3. Whisper Methods
  4. WhisperError
  5. Examples

Intro

There is only a Whisper struct and an IconKind enum.

use murmur::{Whisper, IconKind};

IconKind Variants

The IconKind enum variants map to a specific Unicode or NerdFont icon, each icon has a default color. Casing conforms to Rust API Guidelines.

  • NfFaTimes

  • NfFaCheck

  • NfFaInfoCircle

  • NfFaRefresh

  • NfFaWarning

  • NfFaBug

  • UnicodeCrossMark

  • UnicodeCheckMark

  • UnicodeInformationSource

  • UnicodeGear

  • UnicodeWarningSign

  • UnicodeBug

For a full list of the currently supported icons, see the IconKind enum.

use murmur::{Whisper, IconKind};
use owo_colors::OwoColorize;

Whisper::new()
    .icon(IconKind::NfFaCheck)
    .message("message")
    .message("message".red())
    .whisper()
    .unwrap();


You must have NerdFonts installed to use the `Nf` variants.

Whisper methods:

The Whisper struct provides the following methods:

  • new(): Creates a new Whisper instance
  • .icon(): Adds an icon to the Whisper instance
  • .message(): Adds a message to the Whisper instance
  • .messages(): Adds multiple messages to the Whisper instance
  • .whisper(): Builds the Whisper instance and prints the messages

Here are some examples of how to use the Whisper struct.

new

use murmur::{Whisper, IconKind};

Whisper::new()
    .icon(IconKind::NfFaCheck)
    .message("message")
    .whisper()
    .ok();

icon

use murmur::{Whisper, IconKind};

Whisper::new().icon(IconKind::UnicodeCheckMark).whisper().ok();

message

use murmur::Whisper;
use std::io::{Error, ErrorKind};

fn main() -> Result<(), Error> {
    Whisper::new()
        .message("1 message")
        .message("2 message")
        .message("3 message")
        .whisper()
        .map_err(|err| Error::new(ErrorKind::Other, err))?;
    Ok(())
}

Output:

1 message without icon
  2 message without icon indents by 2 spaces all messages after the first
  3 message

messages

use murmur::Whisper;

Whisper::new()
    .messages(["1 message without icon", "2 message", "3 message"])
    .whisper()
    .ok();

Whisper::new()
    .messages(vec!["1 message without icon", "2 message", "3 message"])
    .whisper()
    .ok();

Whisper Error

The whisper method returns -> Result<(), WhisperError>

use murmur::{Whisper, IconKind, WhisperError};
use std::io::{Error, ErrorKind};

fn whisper_new() -> Result<(), WhisperError> {
    let whisper = Whisper::new()
        .icon(IconKind::NfFaBug)
        .message("The `whisper` method returns  `-> Result<(), WhisperError>`")
        .whisper()?;
    Ok(())
}
Commit count: 134

cargo fmt