diff options
-rw-r--r-- | src/events.rs | 8 | ||||
-rw-r--r-- | src/lib.rs | 22 | ||||
-rw-r--r-- | src/x11/window/mod.rs | 3 |
3 files changed, 22 insertions, 11 deletions
diff --git a/src/events.rs b/src/events.rs index 34234b2..680a077 100644 --- a/src/events.rs +++ b/src/events.rs @@ -1,4 +1,4 @@ -#[derive(Clone, Show, Copy)] +#[derive(Clone, Debug, Copy)] pub enum Event { /// The size of the window has changed. Resized(u32, u32), @@ -38,13 +38,13 @@ pub enum Event { pub type ScanCode = u8; -#[derive(Show, Hash, PartialEq, Eq, Clone, Copy)] +#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)] pub enum ElementState { Pressed, Released, } -#[derive(Show, Hash, PartialEq, Eq, Clone, Copy)] +#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)] pub enum MouseButton { LeftMouseButton, RightMouseButton, @@ -52,7 +52,7 @@ pub enum MouseButton { OtherMouseButton(u8), } -#[derive(Show, Hash, PartialEq, Eq, Clone, Copy)] +#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)] pub enum VirtualKeyCode { /// The '1' key over the letters. Key1, @@ -67,14 +67,14 @@ mod events; pub struct MonitorID(winimpl::MonitorID); /// Error that can happen while creating a window or a headless renderer. -#[derive(Clone, Show, PartialEq, Eq)] +#[derive(Clone, Debug, PartialEq, Eq)] pub enum CreationError { OsError(String), NotSupported, } -impl std::error::Error for CreationError { - fn description(&self) -> &str { +impl CreationError { + fn to_string(&self) -> &str { match self { &CreationError::OsError(ref text) => text.as_slice(), &CreationError::NotSupported => "Some of the requested attributes are not supported", @@ -82,8 +82,20 @@ impl std::error::Error for CreationError { } } +impl std::fmt::Display for CreationError { + fn fmt(&self, formatter: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> { + formatter.write_str(self.to_string()) + } +} + +impl std::error::Error for CreationError { + fn description(&self) -> &str { + self.to_string() + } +} + /// All APIs related to OpenGL that you can possibly get while using glutin. -#[derive(Show, Clone, Copy, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum Api { /// The classical OpenGL. Available on Windows, Linux, OS/X. OpenGl, @@ -91,7 +103,7 @@ pub enum Api { OpenGlEs, } -#[derive(Show, Copy)] +#[derive(Debug, Copy)] pub enum MouseCursor { /// The platform-dependent default cursor. Default, diff --git a/src/x11/window/mod.rs b/src/x11/window/mod.rs index f4c296a..b89e34c 100644 --- a/src/x11/window/mod.rs +++ b/src/x11/window/mod.rs @@ -519,8 +519,7 @@ impl Window { mem::transmute(buffer.as_mut_ptr()), buffer.len() as libc::c_int, ptr::null_mut(), ptr::null_mut()); - str::from_utf8(buffer.as_slice().slice_to(count as usize)) - .unwrap_or("").to_string() + str::from_utf8(&buffer.as_slice()[..count as usize]).unwrap_or("").to_string() }; for chr in written.as_slice().chars() { |