aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/input.rs11
-rw-r--r--src/main.rs10
2 files changed, 12 insertions, 9 deletions
diff --git a/src/input.rs b/src/input.rs
index 6d4d3ab9..ffa19fa8 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -23,6 +23,8 @@
//! APIs
//!
//! TODO handling xmodmap would be good
+use std::io::Write;
+
use glutin::{ElementState, VirtualKeyCode};
use term::mode::{self, TermMode};
@@ -108,6 +110,15 @@ pub trait Notify {
fn notify(&mut self, &str);
}
+/// A notifier type that simply writes bytes to the provided `Write` type
+pub struct WriteNotifier<'a, W: Write + 'a>(pub &'a mut W);
+
+impl<'a, W: Write> Notify for WriteNotifier<'a, W> {
+ fn notify(&mut self, message: &str) {
+ self.0.write(message.as_bytes()).unwrap();
+ }
+}
+
/// Describes a key combination that should emit a control sequence
///
/// The actual triggering key is omitted here since bindings are grouped by the trigger key.
diff --git a/src/main.rs b/src/main.rs
index 7bf4d7d3..aae02322 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -69,14 +69,6 @@ enum ShouldExit {
Yes,
No
}
-
-struct WriteNotifier<'a, W: Write + 'a>(&'a mut W);
-impl<'a, W: Write> input::Notify for WriteNotifier<'a, W> {
- fn notify(&mut self, message: &str) {
- self.0.write(message.as_bytes()).unwrap();
- }
-}
-
/// Channel used by resize handling on mac
static mut resize_sender: Option<mpsc::Sender<glutin::Event>> = None;
@@ -108,7 +100,7 @@ fn handle_event<W>(event: glutin::Event,
render_tx.send((w, h)).expect("render thread active");
},
glutin::Event::KeyboardInput(state, _code, key) => {
- input_processor.process(state, key, &mut WriteNotifier(writer), *terminal.mode())
+ input_processor.process(state, key, &mut input::WriteNotifier(writer), *terminal.mode())
},
_ => ()
}