4 个版本
0.2.0 | 2023年2月13日 |
---|---|
0.1.2 | 2022年7月25日 |
0.1.1 | 2022年5月20日 |
0.1.0 | 2022年5月20日 |
400 在 GUI 分类中
每月下载量 25 次
105KB
308 行
claui
命令行参数(到图形)用户界面
构建器示例
use clap::{arg, Command};
fn main() {
let app = Command::new("Builder Greeter")
.author("Grant Handy <[email protected]>")
.version("1.2.3")
.about("A builder example for claui")
.arg(arg!(--name "Your name").default_value("Joe"))
.arg(arg!(--goodbye "Say goodbye"));
claui::run(app, |matches| {
println!("Hello, {}!", matches.get_one::<String>("name").unwrap());
if matches.get_flag("goodbye") {
println!("Goodbye!");
}
});
}
派生示例
use clap::{CommandFactory, Parser};
#[derive(Parser, Debug)]
#[clap(
name = "Derive Greeter",
author = "Grant Handy <[email protected]>",
version = "1.2.3",
about = "A derive example for claui"
)]
struct Args {
#[clap(long, default_value = "Joe", help = "Your name")]
name: String,
#[clap(long, help = "Say goodbye")]
goodbye: bool,
}
fn main() {
let app = Args::command();
claui::run(app, |matches| {
println!("Hello, {}!", matches.get_one::<String>("name").unwrap());
if matches.get_flag("goodbye") {
println!("Goodbye!");
}
});
}
与 klask
的比较
Klask 是另一个用于 clap
的 GUI 生成器,它也使用 egui
,但 claui 和 klask 的工作方式不同。Klask 通过以子进程的方式运行自己的代码,并设置环境变量来忽略其 GUI,然后捕获子进程的 stdout 来运行你的代码。Claui 只运行一个进程;它在另一个线程中启动你的代码,然后通过 shh
将所有 stdout 重定向到每个帧的缓冲区。
依赖项
~8–27MB
~372K SLoC