Interactive Actions

github crates.io docs.rs build status

This is a Rust library that runs actions and interactions that are defined declaratively.

Dependency

toml [dependencies] interactive-actions = "1"

For most recent version see crates.io

Usage

Run the example:

rust $ 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

Create a Vec<Action>, here described in YAML, but you can either build it in Rust or any Deserialize format:

yaml - name: city interaction: kind: input prompt: input a city out: city

And run it:

```rust use interactive_actions::{data::{Action, ActionHook}, ActionRunner};

let actions: Vec = serdeyaml::fromstr(YAML).unwrap(); let mut runner = ActionRunner::default(); let res = runner.run( &actions, None, ActionHook::After, Some(|action: &Action| { println!("{}", action.name); }), ); ```

Copyright

Copyright (c) 2022 @jondot. See LICENSE for further details.