2 个版本 (1 个稳定版)

1.0.0 2021 年 10 月 12 日
0.1.0 2019 年 3 月 12 日

#125配置

Download history 1760/week @ 2024-04-22 2269/week @ 2024-04-29 1930/week @ 2024-05-06 2221/week @ 2024-05-13 2001/week @ 2024-05-20 1531/week @ 2024-05-27 1810/week @ 2024-06-03 2081/week @ 2024-06-10 2614/week @ 2024-06-17 3098/week @ 2024-06-24 1972/week @ 2024-07-01 2193/week @ 2024-07-08 2455/week @ 2024-07-15 2795/week @ 2024-07-22 3952/week @ 2024-07-29 3901/week @ 2024-08-05

13,173 每月下载量
用于 50 个 Crates (8 个直接使用)

MIT 许可证

27KB
296

fluid-let

Build Status Rust Documentation Latest Version

fluid-let 实现了 动态作用域 变量。

动态或 流体 变量是定义全局配置值的一种方便方式。它们来自 Lisp 语言家族,在这个用例中相对流行。

用法

将此添加到您的 Cargo.toml

[dependencies]
fluid-let = "1"

您可以使用 fluid_let! 宏声明全局动态变量。假设您想要为您的散列实现可配置的 Debug,以控制是否打印整个散列或截断版本

use fluid_let::fluid_let;

fluid_let!(pub static DEBUG_FULL_HASH: bool);

使用 fluid_set! 宏启用完整打印。动态变量的赋值在一定的 动态 作用域内有效。在这种情况下,当函数正在执行时

use fluid_let::fluid_set;

fn some_important_function() {
    fluid_set!(DEBUG_FULL_HASH, &true);

    // Hashes will be printed out with full precision in this function
    // as well as in all functions that it calls.
}

以下是实现使用动态配置的 Debug 的方法

impl fmt::Debug for Hash {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        let full = DEBUG_FULL_HASH.copied().unwrap_or(false);

        write!(f, "Hash(")?;
        if full {
            for byte in &self.value {
                write!(f, "{:02X}", byte)?;
            }
        } else {
            for byte in &self.value[..4] {
                write!(f, "{:02X}", byte)?;
            }
            write!(f, "...")?;
        }
        write!(f, ")")
    }
}

这里我们根据调用者是否启用了调试模式,打印散列的完整值或截断版本。

许可证

代码采用 MIT 许可证(见 LICENSE)。

无运行时依赖

功能