#icons #terminal #formatting #terminal-colors #nerdfonts #color

murmur

此库提供了一种简单灵活的方式来格式化带有可选的 NerdFontsUnicode 图标的彩色消息

6 个稳定版本

2.0.0 2023 年 12 月 26 日
1.2.1 2023 年 12 月 22 日
0.3.6 2023 年 12 月 21 日
0.1.0 2023 年 11 月 26 日

937命令行工具

26 每月下载量

MIT 许可证

51KB
611

murmur

GitHub Crates.io Documentation GitHub Actions License

一个灵活的库,用于构建带有 NerdFontsUnicode 图标的消息。

目录

  1. 简介
  2. IconKind 变体
  3. Whisper 方法
  4. WhisperError
  5. 示例

简介

只有一个 Whisper 结构体和一个 IconKind 枚举。

use murmur::{Whisper, IconKind};

IconKind 变体

IconKind 枚举变体映射到特定的 UnicodeNerdFont 图标,每个图标都有一个默认颜色。命名遵循 Rust API 指南

  • NfFaTimes
  • NfFaCheck
  • NfFaInfoCircle
  • NfFaRefresh
  • NfFaWarning
  • NfFaBug
  • UnicodeCrossMark
  • UnicodeCheckMark
  • UnicodeInformationSource
  • UnicodeGear
  • UnicodeWarningSign
  • UnicodeBug

有关当前支持的所有图标的完整列表,请参阅 IconKind 枚举

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

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


要使用 `Nf` 变体,必须安装 NerdFonts。

Whisper 方法

Whisper 结构体提供了以下方法

  • new():创建一个新的 Whisper 实例
  • .icon():向 Whisper 实例添加一个图标
  • .message():向 Whisper 实例添加一条消息
  • .messages():向 Whisper 实例添加多条消息
  • .whisper():构建 Whisper 实例并打印消息

以下是一些如何使用 Whisper 结构体的示例。

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(())
}

输出

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 错误

whisper 方法返回 -> 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(())
}

依赖项

约 0.5-1MB
约 21K SLoC