diff options
author | Jesse Luehrs <doy@tozt.net> | 2016-04-26 02:48:09 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2016-04-26 02:48:09 -0400 |
commit | 2a05dd6e062b68f0940992903b4874c3d68a4f50 (patch) | |
tree | 7ca5653684262bc80d5c6c994f0587690217d9e1 | |
parent | 88e064a448756bb4a9045a9260702f60ba492990 (diff) | |
download | vt100-rust-2a05dd6e062b68f0940992903b4874c3d68a4f50.tar.gz vt100-rust-2a05dd6e062b68f0940992903b4874c3d68a4f50.zip |
expose rows and cols
-rw-r--r-- | src/screen.rs | 16 | ||||
-rw-r--r-- | 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); } } |