From 2a05dd6e062b68f0940992903b4874c3d68a4f50 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 26 Apr 2016 02:48:09 -0400 Subject: expose rows and cols --- src/screen.rs | 16 ++++++++++++---- tests/basic.rs | 4 +++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/screen.rs b/src/screen.rs index b448a20..5fedee1 100644 --- a/src/screen.rs +++ b/src/screen.rs @@ -1,21 +1,29 @@ use libc; enum ScreenImpl {} -pub struct Screen(*mut ScreenImpl); +pub struct Screen { + pub rows: u32, + pub cols: u32, + + screen_impl: *mut ScreenImpl, +} impl Screen { pub fn new(rows: u32, cols: u32) -> Screen { let screen_impl = unsafe { vt100_screen_new(rows as libc::c_int, cols as libc::c_int) }; - Screen(screen_impl) + Screen { + rows: rows, + cols: cols, + screen_impl: screen_impl, + } } } impl Drop for Screen { fn drop(&mut self) { - let &mut Screen(screen_impl) = self; - unsafe { vt100_screen_delete(screen_impl) }; + unsafe { vt100_screen_delete(self.screen_impl) }; } } diff --git a/tests/basic.rs b/tests/basic.rs index c52a574..68f718a 100644 --- a/tests/basic.rs +++ b/tests/basic.rs @@ -6,6 +6,8 @@ mod tests { #[test] fn object_creation() { - let _ = vt100::Screen::new(24, 80); + let screen = vt100::Screen::new(24, 80); + assert_eq!(screen.rows, 24); + assert_eq!(screen.cols, 80); } } -- cgit v1.2.3-54-g00ecf