9 个版本

0.3.6 2020 年 5 月 18 日
0.3.5 2019 年 4 月 28 日
0.3.1 2019 年 3 月 7 日
0.3.0 2019 年 1 月 25 日
0.1.0 2019 年 1 月 14 日

命令行界面 中排名 #909

每月下载量 29

MIT/Apache 协议

135KB
3.5K SLoC

Interact 是一个框架,以直观的命令行交互方式友好地内省运行中的程序状态。

请访问 主页 获取更多详细信息。


lib.rs:

Interact Prompt

在高级别上,要使用 Interact Prompt,您需要

  1. 在类型上派生 Interact
  2. 注册状态
  3. 启动或调用 Interact 提示符。

伪代码

extern crate interact;

use interact::Interact;
use interact_prompt::{LocalRegistry, SendRegistry, Settings};

#[derive(Interact)]
struct YourType {
    // ...
}

// ...

fn in_each_thread(rc: Rc<SomeState>) {
    // ... You would have some code to register your 'Rc's.
    LocalRegistry::insert("rc_state", Box::new(rc));
    // ...
}

fn spawn_interact(arc: Arc<SomeOtherState>) {
    // On the global context you can register any object that is `Send`
    // and implements `Access` via #[derive(Interact)], this means `Arc` types,
    SendRegistry::insert("arc_state", Box::new(arc));

    interact_prompt::spawn(Settings::default(), ());
}

注意:目前仅支持 SendRegistry 用于 Interact 的后台 spawn 变体的注册。计划未来支持 LocalRegistry。

依赖项

~8.5MB
~165K SLoC