5 个不稳定版本

0.3.1 2021 年 5 月 11 日
0.3.0 2021 年 5 月 11 日
0.2.0 2021 年 5 月 11 日
0.1.1 2021 年 5 月 11 日
0.1.0 2021 年 5 月 11 日

#2322命令行工具


dzp 中使用

自定义许可证

12KB
190

lazer-rs

使用 Rust 编写的具有流畅 API 的控制台打印机。

lazer

Lazer 是一个使用流畅 API 将信息打印到控制台的实用程序。从原始 TypeScript 包移植到 Rust。

描述

Lazer 通过流畅 API 帮助您构建、格式化和打印复杂的消息到控制台。

用法

简单示例

main.rs

use lazer::{lazer};

fn main() {
    lazer()
        .print("Hello,")
        .print_space()
        .print_green("Green World")
        .print_ln("!");
}
$ cargo run
Hello, Green World!

复杂示例

use lazer::{lazer};

fn main() {
    let remote_addr = "127.0.0.1";
    let method = "GET";
    let path = "/a/really/really/really/long/path/here";
    let status = 200;
    let time_ms = 20;
    let size_bytes_string = "1.10kB";

    lazer()
        .print("[").print_utc_time().print("]")
        .print_space(1).print("-").print_space(1)
        .print_pad_right(remote_addr, 15, "_")
        .print_space(2)
        .print_pad_right(method, 4, "_")
        .print_space(2)
        .print_pad_right(path, 20, "_")
        .print_space(2)
        .iff(status >= 200 && status < 300)
            .print_green(&status.to_string())
        .eliff(status >= 300 && status < 400)
            .print_yellow(&status.to_string())
        .eliff(status >= 400)
            .print_red(&status.to_string())
        .end()
        .print_space(2)
        .print_pad_right(&format!("{}ms", time_ms), 6, "_")
        .print_space(2)
        .print_ln(size_bytes_string);
}
$ deno run example.ts
[Tue, 11 May 2021 17:25:18 +0000] - 127.0.0.1_______  GET__  /a/really/really/r+18  200  20ms___  1.10kB

缓冲示例

import { lazer } from "https://deno.land/x/lazer/mod.ts"

const getLinePrefix = () => 
{
    return lazer().buffer()
        .print_yellow('[').print_yellow("Line Prefix").print_yellow(']')
        .print_space().print("-").print_space()
        .print_yellow('[').set_color_yellow().print_utc_time().print_yellow(']')
        .print_space().print("-").print_space()
        .return();
}

lazer()
    .print(getLinePrefix())
    .print_yellow_ln("This is a prefixed line of text output");

lazer()
    .print(getLinePrefix())
    .print_yellow_ln("This is another prefixed line of text output");
$ deno run example.ts
[Line Prefix] - [Mon, 10 May 2021 16:31:29 GMT] - This is a prefixed line of text output
[Line Prefix] - [Mon, 10 May 2021 16:31:29 GMT] - This is another prefixed line of text output

缓冲别名示例

import { lazer } from "https://deno.land/x/lazer/mod.ts"

lazer().buffer()
    .set_color_red().print_ln("Some red output to buffer")
    .store('i am an alias');

lazer().buffer()
    .load('i am an alias')
    .print_b();
$ deno run example.ts
Some red output to buffer

支持的平台

Deno

import { lazer } from "https://deno.land/x/lazer/mod.ts"

Node.js

npm i --save lazer-js
const { lazer } = require('lazer-js');

依赖项

~1MB
~18K SLoC