1个不稳定版本
使用旧的Rust 2015
0.1.0 | 2017年8月27日 |
---|
#886 在 编程语言
21KB
281 行
Rustplacements
这是一个Rust语言的编译器插件,可以将源代码中的所有字符串字面量替换为随机文本。好吧,其实不是随机的。你可以选择用这个页面上的任何列表中的条目来替换文本,只需在现有的Rust代码中添加几个属性即可。
简要示例
让我们从一个简单的示例开始,如下所示。它逐个打印出句子中的单词。
const SENTENCE: [&'static str; 9] = ["The", "Quick", "Brown", "Fox", "Jumped", "Over", "the",
"Lazy", "Dog"];
fn main() {
for word in &SENTENCE {
println!("{}", word);
}
}
输出应该看起来像
The
Quick
Brown
Fox
Jumped
Over
the
Lazy
Dog
Rustplacements允许我们在编译时将所有字符串替换为其他值。假设我们想将所有文本替换为表情符号。Rustplacements可以做到这一点。
#![feature(plugin)]
#![plugin(rustplacements)]
// Placing it in the module root will replace everything in the module
#![Rustplacements = "emojis"]
const SENTENCE: [&'static str; 9] = ["The", "Quick", "Brown", "Fox", "Jumped", "Over", "the",
"Lazy", "Dog"];
fn main() {
for word in &SENTENCE {
println!("{}", word);
}
}
新的输出将看起来像这样。输出是随机的,因此每次你编译你的crate时都会重新生成。
😢 😫 🤓
😞 😠 😟 😖 😧
😬 😬 😈 😡 😟
😓 😒 😬
😝 😘 🤧 😬 😧 😡
😗 😈 😉 😫
😄 😱 😰
😃 🤡 😅 😯
🤒 😈 😈
使用Rustplacements
像Rustplacements这样的编译器插件仅在nightly rust上可用,因为它们需要启用功能标志。要开始,Rustplacements可在crates.io上找到。要下载最新版本,请将以下行添加到Cargo.toml
中。
[dependencies]
rustplacements = "*"
要启用编译器插件,请将以下行添加到main.rs
或lib.rs
的顶部。
#![feature(plugin)]
#![plugin(rustplacements)]
你现在可以在crate中的任何地方使用此插件,只需将#[Rustplacements = "one-direction"]
应用于任何语言元素。您可以使用#![Rustplacements = "got-quotes"]
将元素放在根目录,它将转换模块中的所有字符串字面量。它也可以应用于特定的字符串/impl/函数,以实现更精细的控制。
就是这样。查看分类页面以获取更多可用分类。
贡献
您是否想要添加一个类别?请随意提交一个包含新类别的PR,或者对现有类别的编辑。您需要更改exprs.rs
和CATEGORIES.md
文件,以包含新的类别。有关更多详细信息,请参阅贡献页面。所有Pull Requests都应专业、包容他人,并且一般不具攻击性。如果对类别的适宜性有任何争议,我们将采取更为保守的态度。
依赖项
约345–570KB