aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2016-04-26 02:48:09 -0400
committerJesse Luehrs <doy@tozt.net>2016-04-26 02:48:09 -0400
commit2a05dd6e062b68f0940992903b4874c3d68a4f50 (patch)
tree7ca5653684262bc80d5c6c994f0587690217d9e1
parent88e064a448756bb4a9045a9260702f60ba492990 (diff)
downloadvt100-rust-2a05dd6e062b68f0940992903b4874c3d68a4f50.tar.gz
vt100-rust-2a05dd6e062b68f0940992903b4874c3d68a4f50.zip
expose rows and cols
-rw-r--r--src/screen.rs16
-rw-r--r--tests/basic.rs4
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);
}
}