A fast and easy console library.
This provides a basic, minimal framework for making a basic command interpreter over applications.
<command> [stringargument] ["string argument with spaces"] [33] [4.8]
Note that 33 and 4.8 are two different types, Integer and Float.
``` use rusterm::prelude::*;
fn main() {
let mut commandtable: HashMap
fn add(mut args: Arguments) -> Result<(), RustermError> { let mut sum = 0; for _ in 0..args.len() { let arg: i32 = args.poparg()?.tryinto()?; sum += arg; } println!("{}", sum); Ok(()) } ```
Every function that you write to be used in the Console must follow this signature: fn(mut args: brc::lex::Arguments) -> Result<(), brc::error::Error>
.
To use user-inputted arguments in your function, you must continually pop the command arguments from the args parameter, and then convert them into the type you expect.
Example below:
``` use rusterm::prelude::*;
fn echo(mut args: Arguments) -> Result<(), RustermError> { let firstargument: String = args.poparg()?.tryinto()?; // Expects a String, as per the type annotation. You can expect a f64, i32 or String. println!("{}", firstargument); Ok(()) } ```