use crossbeam_channel::{Receiver, Sender};
use event::Event;
use theme;
use vec::Vec2;
#[cfg(unix)]
mod resize;
pub mod dummy;
pub mod blt;
pub mod curses;
pub mod termion;
pub enum InputRequest {
Peek,
Block,
}
pub trait Backend {
fn finish(&mut self);
fn start_input_thread(
&mut self, event_sink: Sender<Option<Event>>,
input_request: Receiver<InputRequest>,
) {
let _ = event_sink;
let _ = input_request;
}
fn prepare_input(&mut self, input_request: InputRequest) {
let _ = input_request;
}
fn refresh(&mut self);
fn has_colors(&self) -> bool;
fn screen_size(&self) -> Vec2;
fn print_at(&self, pos: Vec2, text: &str);
fn clear(&self, color: theme::Color);
fn set_color(&self, colors: theme::ColorPair) -> theme::ColorPair;
fn set_effect(&self, effect: theme::Effect);
fn unset_effect(&self, effect: theme::Effect);
}