diff options
Diffstat (limited to 'src/screen.rs')
-rw-r--r-- | src/screen.rs | 16 |
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) }; } } |