3 个版本 (稳定版)
1.0.1 | 2023年3月3日 |
---|---|
1.0.0 | 2022年8月24日 |
0.1.0 | 2022年8月7日 |
#801 in 命令行界面
20KB
332 行
交互式操作
这是一个 Rust 库,用于运行声明式定义的操作和交互。
依赖项
[dependencies]
interactive-actions = "1"
查看最新版本请访问 crates.io
用法
运行示例
$ cargo run --example interaction
Finished dev [unoptimized + debuginfo] target(s) in 0.30s
Running `target/debug/examples/interaction`
start
✔ are you ready to start? · Yes
city
✔ input a city · goo
transport
✔ pick a transport · bus
+ cd projects/interactive-actions
+ echo go for goo on a bus
go for goo on a bus
创建一个 Vec<Action>
,这里以 YAML 格式描述,但你可以用 Rust 或任何 Deserialize
格式构建它
- name: city
interaction:
kind: input
prompt: input a city
out: city
并运行它
use interactive_actions::{data::{Action, ActionHook}, ActionRunner};
let actions: Vec<Action> = serde_yaml::from_str(YAML).unwrap();
let mut runner = ActionRunner::default();
let res = runner.run(
&actions,
None,
ActionHook::After,
Some(|action: &Action| {
println!("{}", action.name);
}),
);
版权
依赖项
~6–16MB
~166K SLoC