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