From 0615ffe1cb999aaf0ef945b8be5763bfcce8d9d1 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 1 Apr 2013 04:15:42 -0500 Subject: collect everything under a single reader/writer object --- test/rl.rs | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) (limited to 'test') diff --git a/test/rl.rs b/test/rl.rs index 1915c43..7c04629 100644 --- a/test/rl.rs +++ b/test/rl.rs @@ -1,53 +1,51 @@ extern mod term; use term::{KeyCharacter,KeyEscape,KeyUp,KeyDown,KeyLeft,KeyRight}; -fn term_app (body: &fn (r: &mut term::Reader, w: &mut term::Writer)) { - let mut writer = term::Writer(true); - let mut reader = term::Reader(true); +fn term_app (body: &fn (r: &mut term::Term)) { + let mut term = term::Term(true); do term::ios::preserve { - writer.alternate_screen(true); - body(&mut reader, &mut writer); + term.alternate_screen(true); + body(&mut term); } } -fn draw_map (w: &mut term::Writer, rows: uint, cols: uint) { +fn draw_map (term: &mut term::Term, rows: uint, cols: uint) { for uint::range(0, rows) |i| { - w.move(0, i); - w.write(str::repeat(".", cols)); + term.move(0, i); + term.write(str::repeat(".", cols)); } } -fn draw_character (w: &mut term::Writer, x: uint, y: uint) { - w.move(x, y); - w.write("@"); - w.move(x, y); +fn draw_character (term: &mut term::Term, x: uint, y: uint) { + term.move(x, y); + term.write("@"); + term.move(x, y); } -fn draw_ground (w: &mut term::Writer, x: uint, y: uint) { - w.move(x, y); - w.write("."); +fn draw_ground (term: &mut term::Term, x: uint, y: uint) { + term.move(x, y); + term.write("."); } fn main () { let (cols, rows) = term::size(); - do term_app |r, w| { + do term_app |term| { term::cbreak(); term::echo(false); - w.clear(); + term.clear(); - draw_map(w, rows, cols); + draw_map(term, rows, cols); let mut (x, y) = (0u, 0u); let mut cursor = true; loop { - draw_character(w, x, y); - w.flush(); - let k = match r.read() { + draw_character(term, x, y); + let k = match term.read() { Some(key) => key, None => break, }; - draw_ground(w, x, y); + draw_ground(term, x, y); match k { KeyCharacter('q') | KeyEscape => { break } @@ -57,7 +55,7 @@ fn main () { KeyCharacter('k') | KeyUp if y > 0 => { y -= 1 } KeyCharacter('l') | KeyRight if x < cols - 1 => { x += 1 } - KeyCharacter(' ') => { w.cursor(cursor); cursor = !cursor } + KeyCharacter(' ') => { term.cursor(cursor); cursor = !cursor } _ => { } } -- cgit v1.2.3-54-g00ecf