1 个不稳定版本

0.1.3 2023年5月2日
0.1.2 2023年5月2日
0.1.1 2023年5月2日
0.1.0 2023年5月2日

#20#spinner

每月下载量 35 次

MIT/Apache

17KB
129

SLL

Simple Logging Library

SLL 提供在 Rust 中的简单函数,用于进行基本日志记录。

日志!()

log!() 宏接收消息(String&str)以及可选的 LogLevelCriticalErrorWarningInfoDebugNotice

示例代码

use sll;

fn main() {
    sll:log!("Criticall error", LogLevel::CRITICAL);
    sll:log!("Error", LogLevel::ERROR);
    sll:log!("Warning", LogLevel::WARNING);
    sll:log!("Information", LogLevel::INFO);
    sll:log!("Debugging is hard", LogLevel::DEBUG);
    sll:log!("Hello", LogLevel::NOTICE);
}

section!()task!()prompt!()

部分用于描述代码的主要部分,例如在餐厅机器人程序中,制作开胃菜、制作晚餐和制作甜点都是部分。

任务用于描述示例中的较小代码片段,例如一个任务可能是:削胡萝卜、切胡萝卜...

提示可能是最简单且已知的概念。你会在命令行中请求用户输入。

部分、任务和提示都有一个必需的参数,一个消息,以及一个可选的参数,一个深度。

深度可以用来指定子部分或子任务,子任务的深度高于其父任务。

示例代码

use sll;

fn main() {
    let p = sll:prompt!("Ready for dinner");
    sll:section!("Make starter");
    sll:task!("Boil water");
    sll:task!("Add bouillon");
    sll:section!("Make dinner");
    sll:section!("Cut greens", 1);
    sll:task!("Carrot", 1);
    sll:task!("Peel carrot", 2);
    sll:task!("Cut carrot", 2); 
    sll:task!("Potato", 1);
    sll:task!("Peel potato", 2);
    sll:task!("Cut potato", 2);
    // TODO: rest of meal
}

SpinnerProgress

旋转器和进度条都用于传达计算机正在认真思考的消息。

当不知道循环将花费多长时间时,应使用旋转器。

当你知道循环将花费多长时间(多少次迭代)时,使用进度条。

示例代码

use ssl;

fn main() {
    let spinner = ssl::Spinner::new();
    loop {
        spinner.update();
        let result = do_something();
        if result.done {
            break;
        }
    }
    spinner.release();

    let progress = ssl::Progress::new(100, 0);
    for i in 1..101 {
        do_something(i);

        progress.update(1);
    }
    progress.release();
}

依赖项

~0–9.5MB
~42K SLoC