11 个版本 (7 个重大更改)
新版本 0.10.0 | 2024 年 8 月 11 日 |
---|---|
0.9.0 | 2024 年 6 月 5 日 |
0.8.0 |
|
#17 在 #building
65KB
1.5K SLoC
repl-block
概要
此包提供了一种简单易用的方式来构建 Read-Eval-Print-Loop
,即 REPL。
用法
将此包作为依赖项添加到您的项目 Cargo.toml
[dependencies]
repl-block= "0.9.0"
然后可以使用 ReplBuilder
类型构建并启动一个 REPL,如下所示:
use repl_block::prelude::{ReplBuilder, ReplBlockResult, Utf8PathBuf};
fn main() -> ReplBlockResult<()> {
let mut evaluator = /* initialize your evaluator */;
let path = Utf8PathBuf::try_from(env::current_dir()?)?.join(".repl.history");
ReplBuilder::default()
// Explicitly register .repl.history as the history file:
.history_filepath(path)
// Register the evaluator; the default evaluator fn is NOP
.evaluator(|query: &str| {
match evaluator.evaluate(query) {
Ok(value) => println!("{value}"),
Err(err) => println!("{err}"),
}
Ok(())
})
.build()? // Use `self` to build a REPL
.start()?;
Ok(())
}
依赖关系
~6–17MB
~227K SLoC