diff --git a/rust/examples/full-basics.rs b/rust/examples/full-basics.rs index 44797c068..c5f47fbf0 100644 --- a/rust/examples/full-basics.rs +++ b/rust/examples/full-basics.rs @@ -3,7 +3,6 @@ use libnotcurses_sys::*; fn main() -> NcResult<()> { let nc = Notcurses::new()?; let stdplane = nc.stdplane()?; - let p1 = NcPlane::new(nc, 0, 0, 20, 30); for ch in "Initializing cells...".chars() { let cell = NcCell::with_char7b(ch); diff --git a/rust/src/cells/methods.rs b/rust/src/cells/methods.rs index 0bafe2c44..c36ed3da6 100644 --- a/rust/src/cells/methods.rs +++ b/rust/src/cells/methods.rs @@ -76,7 +76,7 @@ impl NcCell { channels: NcChannelPair, ) -> NcResult { let bytes = crate::cell_prime(plane, cell, gcluster, style, channels); - error![bytes, bytes as u32] + error![bytes, "", bytes as u32] } /// Duplicate this NcCell into another one. diff --git a/rust/src/direct/methods.rs b/rust/src/direct/methods.rs index aba1bd918..c2ed66be4 100644 --- a/rust/src/direct/methods.rs +++ b/rust/src/direct/methods.rs @@ -71,7 +71,6 @@ impl NcDirect { pub fn raster_frame(&mut self, faken: &mut NcPlane, align: NcAlign) -> NcResult<()> { error![ unsafe { crate::ncdirect_raster_frame(self, faken, align) }, - (), "Rastering frame" ] } @@ -311,6 +310,7 @@ impl NcDirect { let (mut y, mut x) = (0, 0); error![ unsafe { crate::ncdirect_cursor_yx(self, &mut y, &mut x) }, + "", (y as NcDimension, x as NcDimension) ] } diff --git a/rust/src/macros.rs b/rust/src/macros.rs index 7921fcb09..f8e8b89a5 100644 --- a/rust/src/macros.rs +++ b/rust/src/macros.rs @@ -119,18 +119,18 @@ macro_rules! printf { /// type `()`, and an empty `&str` `""`, respectively. #[macro_export] macro_rules! error { - ($res:expr, $ok:expr, $msg:expr) => { + ($res:expr, $msg:expr, $ok:expr) => { if $res >= crate::NCRESULT_OK { return Ok($ok); } else { return Err(crate::NcError::with_msg($res, $msg)); } }; - ($res:expr, $ok:expr) => { - error![$res, $ok, ""]; + ($res:expr, $msg:expr) => { + error![$res, $msg, ()]; }; ($res:expr) => { - error![$res, (), ""]; + error![$res, "", ()]; }; } diff --git a/rust/src/notcurses/methods.rs b/rust/src/notcurses/methods.rs index 860fbc0d4..476ed3bdd 100644 --- a/rust/src/notcurses/methods.rs +++ b/rust/src/notcurses/methods.rs @@ -113,7 +113,7 @@ impl Notcurses { /// Returns a Notcurses context, expects [NotcursesOptions]. pub fn with_options<'a>(options: NotcursesOptions) -> NcResult<&'a mut Notcurses> { let res = unsafe { notcurses_init(&options, null_mut()) }; - error_ref_mut![res, "Initializing Notcurses"] + error_ref_mut![res, "Notcurses.with_options()"] } /// Returns a Notcurses context. Expects [NcLogLevel] and flags. @@ -355,7 +355,7 @@ impl Notcurses { let mut blitter = 0; error![ unsafe { crate::notcurses_lex_blitter(cstring![op], &mut blitter) }, - blitter, "Invalid blitter name" + "Invalid blitter name", blitter ] } @@ -376,7 +376,7 @@ impl Notcurses { let mut scalemode = 0; error![ unsafe { crate::notcurses_lex_scalemode(cstring![op], &mut scalemode) }, - scalemode + "", scalemode ] } @@ -412,7 +412,10 @@ impl Notcurses { /// /// *C style function: [notcurses_mouse_enable()][crate::notcurses_mouse_enable].* pub fn mouse_enable(&mut self) -> NcResult<()> { - error![unsafe { crate::notcurses_mouse_enable(self) }] + error![ + unsafe { crate::notcurses_mouse_enable(self) }, + "Notcurses.mouse_enable()" + ] } /// Returns the number of simultaneous colors claimed to be supported, @@ -440,6 +443,7 @@ impl Notcurses { let (mut y, mut x) = (0, 0); error![ unsafe { crate::notcurses_refresh(self, &mut y, &mut x) }, + "", (y as NcDimension, x as NcDimension) ] } @@ -448,7 +452,10 @@ impl Notcurses { /// /// *C style function: [notcurses_render()][crate::notcurses_render].* pub fn render(&mut self) -> NcResult<()> { - error![unsafe { crate::notcurses_render(self) }] + error![ + unsafe { crate::notcurses_render(self) }, + "Notcurses.render()" + ] } /// Performs the rendering and rasterization portion of @@ -540,7 +547,10 @@ impl Notcurses { /// /// *C style function: [notcurses_stdplane()][crate::notcurses_stdplane].* pub fn stdplane<'a>(&mut self) -> NcResult<&'a mut NcPlane> { - error_ref_mut![unsafe { crate::notcurses_stdplane(self) }] + error_ref_mut![ + unsafe { crate::notcurses_stdplane(self) }, + "Notcurses.stdplane()" + ] } /// Returns a reference to the standard [NcPlane] for this terminal. diff --git a/rust/src/plane/methods.rs b/rust/src/plane/methods.rs index 2647db683..541e40490 100644 --- a/rust/src/plane/methods.rs +++ b/rust/src/plane/methods.rs @@ -248,7 +248,7 @@ impl NcPlane { ) -> NcResult { let res = unsafe { crate::ncplane_stain(self, y_stop as i32, x_stop as i32, ul, ur, ll, lr) }; - error![res, res as NcDimension]; + error![res, "", res as NcDimension]; } } @@ -410,7 +410,7 @@ impl NcPlane { ) -> NcResult { let res = unsafe { crate::ncplane_format(self, y_stop as i32, x_stop as i32, stylemask as u32) }; - error![res, res as NcDimension] + error![res, "", res as NcDimension] } /// Returns the current styling for this NcPlane. @@ -503,7 +503,7 @@ impl NcPlane { #[inline] pub fn at_cursor_cell(&mut self, cell: &mut NcCell) -> NcResult { let bytes = unsafe { crate::ncplane_at_cursor_cell(self, cell) }; - error![bytes, bytes as u32] + error![bytes, "", bytes as u32] } /// Retrieves the current contents of the specified [NcCell], returning the @@ -541,7 +541,7 @@ impl NcPlane { cell: &mut NcCell, ) -> NcResult { let bytes = unsafe { crate::ncplane_at_yx_cell(self, y as i32, x as i32, cell) }; - error![bytes, bytes as u32] + error![bytes, "", bytes as u32] } /// Extracts this NcPlane's base [NcCell] into `cell`. @@ -570,7 +570,10 @@ impl NcPlane { stylemask: NcStyleMask, channels: NcChannelPair, ) -> NcResult<()> { - error![unsafe { crate::ncplane_set_base(self, &(egc as i8), stylemask as u32, channels) }] + error![ + unsafe { crate::ncplane_set_base(self, &(egc as i8), stylemask as u32, channels) }, + &format!("NcPlane.set_base({}, {}, {})", egc, stylemask, channels) + ] } /// Sets this NcPlane's base NcCell. @@ -650,7 +653,7 @@ impl NcPlane { cell: &NcCell, ) -> NcResult { let res = unsafe { crate::ncplane_putc_yx(self, y as i32, x as i32, cell) }; - error![res, res as NcDimension] + error![res, "", res as NcDimension] } /// Replaces the NcCell at the current coordinates with the provided NcCell, @@ -662,7 +665,7 @@ impl NcPlane { /// *C style function: [ncplane_putc()][crate::ncplane_putc].* pub fn putc(&mut self, cell: &NcCell) -> NcResult { let res = crate::ncplane_putc(self, cell); - error![res, res as NcDimension] + error![res, "", res as NcDimension] } /// Calls [putchar_yx][NcPlane#method.putchar_yx] at the current cursor location. @@ -672,7 +675,7 @@ impl NcPlane { /// *C style function: [ncplane_putchar()][crate::ncplane_putchar].* pub fn putchar(&mut self, ch: char) -> NcResult { let res = crate::ncplane_putchar(self, ch); - error![res, res as NcDimension] + error![res, "", res as NcDimension] } // TODO: call put_egc @@ -696,7 +699,7 @@ impl NcPlane { ch: char, ) -> NcResult { let res = crate::ncplane_putchar_yx(self, y, x, ch); - error![res, res as NcDimension] + error![res, "", res as NcDimension] } /// Writes a series of [NcEgc][crate::NcEgc]s to the current location, @@ -712,7 +715,7 @@ impl NcPlane { #[inline] pub fn putstr(&mut self, string: &str) -> NcResult { let res = crate::ncplane_putstr(self, string); - error![res, res as NcDimension] + error![res, "", res as NcDimension] } /// Same as [putstr][NcPlane#method.putstr], but it also tries to move the @@ -742,7 +745,11 @@ impl NcPlane { string: &str, ) -> NcResult { let res = unsafe { crate::ncplane_putstr_aligned(self, y as i32, align, cstring![string]) }; - error![res, res as NcDimension] + error![ + res, + &format!("NcPlane.putstr_aligned({}, {}, {})", y, align, string), + res as NcDimension + ] } /// Writes a series of [NcEgc][crate::NcEgc]s to the current location, but @@ -758,7 +765,7 @@ impl NcPlane { /// *C style function: [ncplane_putstr_stained()][crate::ncplane_putstr_stained].* pub fn putstr_stained(&mut self, string: &str) -> NcResult { let res = unsafe { crate::ncplane_putstr_stained(self, cstring![string]) }; - error![res, res as NcDimension] + error![res, "", res as NcDimension] } /// Write a string, which is a series of [NcEgc][crate::NcEgc]s, to the @@ -780,7 +787,7 @@ impl NcPlane { string: &str, ) -> NcResult { let res = unsafe { crate::ncplane_putstr_yx(self, y as i32, x as i32, cstring![string]) }; - error![res, res as NcDimension] + error![res, "", res as NcDimension] } } @@ -1625,7 +1632,7 @@ impl NcPlane { x_stop as i32, ) }; - error![res, res as NcDimension] + error![res, "", res as NcDimension] } /// Draw a gradient with its upper-left corner at the current cursor position, @@ -1647,7 +1654,7 @@ impl NcPlane { x_len: NcDimension, ) -> NcResult { let res = crate::ncplane_gradient_sized(self, egc, stylemask, ul, ur, ll, lr, y_len, x_len); - error![res, res as NcDimension] + error![res, "", res as NcDimension] } /// Draws a high-resolution gradient using upper blocks and synced backgrounds. @@ -1671,7 +1678,7 @@ impl NcPlane { let res = unsafe { crate::ncplane_highgradient(self, ul, ur, ll, lr, y_stop as i32, x_stop as i32) }; - error![res, res as NcDimension] + error![res, "", res as NcDimension] } /// [`gradient_sized`][NcPlane#method.gradient_sized] @@ -1690,7 +1697,7 @@ impl NcPlane { let res = unsafe { crate::ncplane_highgradient_sized(self, ul, ur, ll, lr, y_stop as i32, x_stop as i32) }; - error![res, res as NcDimension] + error![res, "", res as NcDimension] } /// Converts this NcPlane's content to greyscale. diff --git a/rust/src/widgets/menu/methods/menu.rs b/rust/src/widgets/menu/methods/menu.rs index dd5bd17dd..ff872dd9e 100644 --- a/rust/src/widgets/menu/methods/menu.rs +++ b/rust/src/widgets/menu/methods/menu.rs @@ -32,9 +32,15 @@ impl NcMenu { /// /// *C style function: [ncmenu_item_set_status()][crate::ncmenu_item_set_status].* pub fn item_set_status(&mut self, section: &str, item: &str, enabled: bool) -> NcResult<()> { - error![unsafe { - crate::ncmenu_item_set_status(self, cstring![section], cstring![item], enabled) - }] + error![ + unsafe { + crate::ncmenu_item_set_status(self, cstring![section], cstring![item], enabled) + }, + &format!( + ".item_set_status({:?}, {:?}, {:?}, {})", + self, section, item, enabled + ) + ] } /// Returns the [NcMenuItem][crate::NcMenuItem] description