From 710a07d8965befe7df592cffaa4da61be3595fc5 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Mon, 2 Mar 2020 15:19:59 +0800 Subject: [PATCH] Refactor some examples. --- examples/repl.rs | 21 +++------------------ examples/simple_fn.rs | 9 +++++---- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/examples/repl.rs b/examples/repl.rs index 8a75c3d5..1990afed 100644 --- a/examples/repl.rs +++ b/examples/repl.rs @@ -1,34 +1,19 @@ use rhai::{Engine, RegisterFn, Scope}; -use std::fmt::Display; use std::io::{stdin, stdout, Write}; use std::process::exit; -fn showit(x: &mut T) -> () { - println!("{}", x) -} - -fn quit() { - exit(0); -} - pub fn main() { let mut engine = Engine::new(); let mut scope = Scope::new(); - engine.register_fn("print", showit as fn(x: &mut i32) -> ()); - engine.register_fn("print", showit as fn(x: &mut i64) -> ()); - engine.register_fn("print", showit as fn(x: &mut u32) -> ()); - engine.register_fn("print", showit as fn(x: &mut u64) -> ()); - engine.register_fn("print", showit as fn(x: &mut f32) -> ()); - engine.register_fn("print", showit as fn(x: &mut f64) -> ()); - engine.register_fn("print", showit as fn(x: &mut bool) -> ()); - engine.register_fn("print", showit as fn(x: &mut String) -> ()); - engine.register_fn("exit", quit); + engine.register_fn("exit", || exit(0)); loop { print!("> "); + let mut input = String::new(); stdout().flush().expect("couldn't flush stdout"); + if let Err(e) = stdin().read_line(&mut input) { println!("input error: {}", e); } diff --git a/examples/simple_fn.rs b/examples/simple_fn.rs index ccef105e..4be5e5b6 100644 --- a/examples/simple_fn.rs +++ b/examples/simple_fn.rs @@ -1,13 +1,14 @@ use rhai::{Engine, RegisterFn}; -fn add(x: i64, y: i64) -> i64 { - x + y -} - fn main() { let mut engine = Engine::new(); + fn add(x: i64, y: i64) -> i64 { + x + y + } + engine.register_fn("add", add); + if let Ok(result) = engine.eval::("add(40, 2)") { println!("Answer: {}", result); // prints 42 }