Small improvements

This commit is contained in:
daa 2017-11-17 23:48:33 +03:00
parent 797de26ec2
commit 56bc8f32de
2 changed files with 12 additions and 7 deletions

View File

@ -15,7 +15,7 @@ use super::mode_info::ModeInfo;
pub trait RedrawEvents {
fn on_cursor_goto(&mut self, row: u64, col: u64) -> RepaintMode;
fn on_put(&mut self, text: &str) -> RepaintMode;
fn on_put(&mut self, text: String) -> RepaintMode;
fn on_clear(&mut self) -> RepaintMode;
@ -136,7 +136,12 @@ macro_rules! call {
($s:ident -> $c:ident ($args:ident : $($arg_type:ident),+ )) => (
{
let mut iter = $args.into_iter();
$s.$c($( try_arg!(iter.next().unwrap(), $arg_type)),+ )
$s.$c($(
try_arg!(iter.next()
.ok_or_else(|| format!("No such argument for {}", stringify!($c)))?,
$arg_type
)
),+ )
}
)
}
@ -180,10 +185,10 @@ pub fn call(
args: Vec<Value>,
) -> result::Result<RepaintMode, String> {
let repaint_mode = match method {
"cursor_goto" => ui.on_cursor_goto(try_uint!(args[0]), try_uint!(args[1])),
"put" => ui.on_put(try_str!(args[0])),
"cursor_goto" => call!(ui->on_cursor_goto(args: uint, uint)),
"put" => call!(ui->on_put(args: str)),
"clear" => ui.on_clear(),
"resize" => ui.on_resize(try_uint!(args[0]), try_uint!(args[1])),
"resize" => call!(ui->on_resize(args: uint, uint)),
"highlight_set" => {
call!(ui->on_highlight_set(args: ext));
RepaintMode::Nothing

View File

@ -907,8 +907,8 @@ impl RedrawEvents for State {
RepaintMode::AreaList(repaint_area)
}
fn on_put(&mut self, text: &str) -> RepaintMode {
RepaintMode::Area(self.model.put(text, self.cur_attrs.as_ref()))
fn on_put(&mut self, text: String) -> RepaintMode {
RepaintMode::Area(self.model.put(&text, self.cur_attrs.as_ref()))
}
fn on_clear(&mut self) -> RepaintMode {