aboutsummaryrefslogtreecommitdiffstats
path: root/src/screen.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/screen.rs')
-rw-r--r--src/screen.rs16
1 files changed, 12 insertions, 4 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) };
}
}