不得不说,Rust 的宏给了我耳目一新的感觉。这么强大的宏,鄙人还是第一次见。 受到 commander.js 和 rocket.rs 的启发,我想能不能把 rust 的宏用于开发 CLI 程序,在经过一段时间的思考和行动之后,终于还是成功了。 这对于我而言是个挑战,毕竟 Rust 这门语言我才接触不久。
github 地址: commander-rust 主页:commadner-rust 主页 (主页由于没时间了,没做移动端适配。。。)
大概的构思是这样的,我想开发 cli 可以这样开发:
#![feature(proc_macro_hygiene)]
use commander_rust::{option, command, entry, Cli, run};
#[option(-c, --cn, "Chinese")]
#[option(-e, --en, "English")]
#[option(-j, --jp, "Japanese")]
#[command(hello, "Say hello")]
fn hello(cli: Cli) {
if cli.has("cn") {
println!("你好,世界");
} else if cli.has("en") {
println!("hello, world!");
} else if cli.has("jp") {
println!("こんにちは、世界");
}
}
#[entry]
fn main() { run!(); }
这样的话,我个人觉得逻辑和布局上都比较清楚。 大家有什么好的意见吗?不要脸地求 star。。。
1
ArianX 2019-05-02 20:07:47 +08:00
请问大佬进入主页时的那段代码动画是怎么搞出来的喔
|
2
VDimos OP @ArianX requestAnimationFrame,然后自己定义(抄袭)了一个三次贝塞尔曲线的函数,然後递归调用,代码在 homepage 里面,很简单的
|
3
Skye347 2019-05-02 20:11:56 +08:00 via Android
个人还是喜欢 structopt 的风格,能更好地利用 ide 之类的。大佬看能不能结合一下
|
5
HeavenlyChorus 2019-05-02 20:53:53 +08:00
资词一下
|
6
dodo2012 2019-05-02 20:58:52 +08:00
rust 写起来, 这个所有权和借用一直搞的很头大,
|