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 日

#620命令行界面

每月 45 次下载
interact_prompt 中使用

MIT/Apache

115KB
3K SLoC

Interact 是一个用于以直观的命令行交互方式友好地在线检查运行中程序状态的框架。

请访问 主页 了解更多详情。


lib.rs:

Interact

Interact 是一个用于以直观的命令行交互方式友好地在线检查运行中程序状态的框架。

虽然动态类型解释型语言允许使用提示符查看运行中的程序状态,但编译型语言通常不提供该功能。由于将解释器引入编译型语言难度很大,Interact 项目旨在使用稳定的 Rust 提供一种折中方案。

使用方法

注意:如果您不是手动扩展在 Interact 下使用的类型,您可能不需要此 crate 中导出的大多数项目。相反,请寻找 interact_prompt crate。

设计

Interact 引入了一系列特质,其中主要的是 AccessDeser 特质。这些 crate 可以通过 #[derive(Interact)] 自定义推导,或者手动推导。

Access 提供了两个返回特殊访问器特质对象类型的方法。请阅读 Interact 的 access 部分的文档。

Deser 特质是一个特殊的反序列化器,允许在非歧义解析点提供在线交互提示。

构成 Interact 的其他相关部分包括

  • reflector,当提供类型时,将生成它的表示,同时处理引用循环、强制的输出限制、互斥锁和自定义进程内间接引用。
  • climber,当给定一个类似 Rust 的内部值表达式时,知道如何从 Interact 根向下到字段。

依赖项

~4MB
~82K SLoC