18个稳定版本
1.1.1 | 2024年2月4日 |
---|---|
1.1.0 | 2024年1月30日 |
1.0.10 | 2023年12月23日 |
1.0.9 | 2023年4月17日 |
1.0.2 | 2020年8月30日 |
#21 在 配置 类别中
1,020 每月下载量
在 5 个Crates中 使用 (直接使用2个)
30KB
559 行
inline_tweak
inline_tweak 基于 这篇tuxedo labs的博客文章。
直接从您的代码中调整任何文字,程序运行时修改源代码会显示出来。
它通过在文件更改时解析文件来工作。
该库非常小巧,仅需要 lazy_static
依赖来保存修改后的值。
在发布模式下,调整代码被禁用并编译掉。
derive
功能暴露了一个过程宏,可以将函数体中的所有文字转换为可调整的值。
用法
use inline_tweak::*;
fn main() {
loop {
println!("{}", tweak!(3.14)); // Try changing the value while the application is running
}
}
额外功能
derive
derive
功能允许调整函数中的任何数字/布尔/字符文字。它避免了在代码中添加 inline_tweak::tweak!
调用,使代码更简洁。
#[inline_tweak::tweak_fn]
fn main() {
loop {
let v = 1.0; // Try changing this value!
println!("{}", v);
std::thread::sleep(Duration::from_millis(200)); // or even this value :)
}
}
注意,它需要 syn
/quote
/proc_macro2
依赖,这使得crate编译速度较慢。
与 tweak!
不同,它不允许在宏调用(如 println!
)中调整文字,因为它无法可靠地通过函数调用替换文字,因为宏可以有自定义语法。
watch!
inline_tweak
提供了一个 watch!()
宏,该宏会休眠直到文件被修改,类似于断点。
use inline_tweak::*;
fn main() {
loop {
println!("{}", tweak!("hello world"));
watch!(); // The thread will sleep here until anything in the file changes
}
}
表达式
inline_tweak
允许通过稍后提供值来调整表达式。例如
tweak!(rng.gen_range(0.0, 1.0))
可以修改文件(甚至当应用程序正在运行时)来替换为常量值
tweak!(5.0; rng.gen_range(0.0, 1.0)) // will always return 5.0
请注意,这仅适用于返回可调整类型的表达式。(数字/布尔文字)
release_tweak!
release_tweak!
宏的行为与 tweak!
完全相同,不同之处在于它也可以在发布模式下工作。
该功能可以通过功能标志 "release_tweak"
访问,默认情况下未启用。
安装
只需将此行添加到您的 Cargo.toml 文件中
inline_tweak = "1.0.10"
依赖项
~215KB