Something went wrong. Try again.
Personal fork of prime agent. Mirror of: https://mnemosyne.sigilzero.dev/sigilzero/prime-agent
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051//! This example shows a simple read-evaluate-print-loop (REPL).
use mlua::{Error, Lua, MultiValue};use rustyline::DefaultEditor;
fn main() { let lua = Lua::new(); let mut editor = DefaultEditor::new().expect("Failed to create editor");
loop { let mut prompt = "> "; let mut line = String::new();
loop { match editor.readline(prompt) { Ok(input) => line.push_str(&input), Err(_) => return, }
match lua.load(&line).eval::<MultiValue>() { Ok(values) => { editor.add_history_entry(line).unwrap(); if values.len() > 0 { println!( "{}", values .iter() .map(|value| format!("{:#?}", value)) .collect::<Vec<_>>() .join("\t") ); } break; } Err(Error::SyntaxError { incomplete_input: true, .. }) => { // continue reading input and append it to `line` line.push_str("\n"); // separate input lines prompt = ">> "; } Err(e) => { eprintln!("error: {}", e); break; } } } }}