diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2024-12-07 17:17:22 +0100 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2024-12-07 17:17:22 +0100 |
| commit | c0598823335cfdc6deb5c48fe1ead8ecea18097e (patch) | |
| tree | 561b47f9f459b9633c4244c3a0cabe12a44859c1 /src/lua/mod.rs | |
| parent | 53a9172bddbb83a1c570cc3fed794e7b73c1f1d7 (diff) | |
add error type to iobuffer
Diffstat (limited to 'src/lua/mod.rs')
| -rw-r--r-- | src/lua/mod.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/lua/mod.rs b/src/lua/mod.rs index ae619b0..815b38d 100644 --- a/src/lua/mod.rs +++ b/src/lua/mod.rs @@ -18,24 +18,25 @@ pub mod runnable; pub mod runtime; macro_rules! ud_is_type { - ($writer:ident, $ud:ident, $f:ty => $fe:expr $(, $($r:ty => $e:expr),+)? $(,)?) => { + ($content:ident, $ud:ident, $f:ty => $fe:expr $(, $($r:ty => $e:expr),+)? $(,)?) => { if $ud.is::<$f>() { - $writer.write(format!("{:#?}", $fe)) + $content += &format!("{:#?}", $fe); } $($( else if $ud.is::<$r>() { - $writer.write(format!("{:#?}", $e)) + $content += &format!("{:#?}", $e); })*)? else { - $writer.write(format!("{:#?}", $ud)); + $content += &format!("{:#?}", $ud); } }; } fn print(_: &Lua, args: LuaMultiValue) -> LuaResult<()> { let mut writer = iobuffer::iobuffer().write().unwrap(); + let mut content = String::new(); for (i, arg) in args.iter().enumerate() { if let Some(ud) = arg.as_userdata() { ud_is_type!( - writer, + content, ud, CellRef => ud.borrow::<CellRef>(), GlobalConfig => GlobalConfig::get(), @@ -45,14 +46,16 @@ fn print(_: &Lua, args: LuaMultiValue) -> LuaResult<()> { SheetViewState => GlobalState::get().view, ); } else { - writer.write(format!("{:#?}", arg)); + content += &format!("{:#?}", arg); } if i < args.len() - 1 { - writer.write(", "); + content += ", "; } } - writer.writeln(""); + content += "\n"; + + writer.print(content); Ok(()) } |