2 个不稳定版本
| 0.2.0 | 2022 年 12 月 22 日 |
|---|---|
| 0.1.0 | 2022 年 11 月 24 日 |
#53 在 #repl
用于 sequent-repl
80KB
2K SLoC
Revolver
用于构建 REPL 应用程序的库。
概念
命令
Command 特征是可执行命令的规范 — REPL 应用的 'execute' 部分。一个命令通常伴随着一个 NamedCommandParser 实现来将命令字符串转换为 Command 对象。
Command 和 NamedCommandParser 是你必须实现的两个特征。其余的都是配置。
指挥官
Commander 使用预先配置的 NamedCommandParser 映射将用户输入(通常是来自终端界面的行)解码为动态的 Command 对象。
内置命令
Revolver 随带两个有用的内置命令,可以直接使用。
help— 一个自帮助指南,概述了可用的命令及其用法。quit— 终止 REPL。 (它只退出循环;它不会终止应用程序。)
这些命令是可选的,这意味着你必须明确将它们的解析器包含在您的 Commander 中才能启用它们。
终端
Terminal 特征代表与用户的基于文本的界面。它实现了 REPL 应用的 'read' 和 'print' 部分。
Revolver 当前捆绑了两个 Terminal 实现
Streaming— 使用Input和Output特征通过 I/O 流组合的终端设备。已提供用于stdin和stdout流的适配器。可以通过提供自定义闭包来编写适配器以与非标准流接口。Mock— 一种模拟终端设备以提供输入、捕获输出并执行各种断言的方法。
循环器
Looper 是一种基于连续用户输入迭代运行命令的机制。它实现了 REPL 应用的 'loop' 部分。
入门
添加依赖
cargo add revolver
示例
请参阅 examples/calculator.rs 以获取简单的计算器 REPL 示例。
依赖关系
~0.5–1MB
~21K SLoC