1
0
Fork
You've already forked repl-rs
0
Rust library for managing an interactive command-line session
  • Rust 100%
2026年05月02日 23:21:01 -05:00
examples Add docs for async functions 2026年05月02日 23:19:01 -05:00
src Add docs for async functions 2026年05月02日 23:19:01 -05:00
.gitignore Initial commit 2020年05月19日 23:17:51 -05:00
Cargo.toml Bump version number 2026年05月02日 23:21:01 -05:00
README.md add README 2020年06月05日 16:27:38 -05:00

repl-rs

Library to help you create a REPL for your application.

Basic example code:

usestd::collections::HashMap;userepl_rs::{Command,Error,Parameter,Result,Value};userepl_rs::{Convert,Repl};// Add two numbers.
fn add<T>(args: HashMap<String,Value>,_context: &mutT)-> Result<Option<String>>{letfirst: i32 =args["first"].convert()?;letsecond: i32 =args["second"].convert()?;Ok(Some((first+second).to_string()))}// Write "Hello"
fn hello<T>(args: HashMap<String,Value>,_context: &mutT)-> Result<Option<String>>{Ok(Some(format!("Hello, {}",args["who"])))}fn main()-> Result<()>{letmutrepl=Repl::new(()).with_name("MyApp").with_version("v0.1.0").with_description("My very cool app").add_command(Command::new("add",add).with_parameter(Parameter::new("first").set_required(true)?)?.with_parameter(Parameter::new("second").set_required(true)?)?.with_help("Add two numbers together"),).add_command(Command::new("hello",hello).with_parameter(Parameter::new("who").set_required(true)?)?.with_help("Greetings!"),);repl.run()}

Running the example above:

% my_app
Welcome to MyApp v0.1.0
MyApp> help
MyApp v0.1.0: My very cool app
------------------------------ 
add - Add two numbers together
hello - Greetings!
MyApp> help add
add: Add two numbers together
Usage:
 add first second
MyApp> add 1 2
3
MyApp>