use std::io; use plugins::Plugin; use toml::Table; use Tenquestionmarks; use User; use std::sync::mpsc::Sender; use event::Event; pub struct StdinPlugin { user: User } impl StdinPlugin { pub fn new (configuration: &Table) -> Box { Box::new(StdinPlugin { user: User { name: String::from("Dave") } }) } } impl Plugin for StdinPlugin { fn register (&self, tenquestionmarks: &Tenquestionmarks) { } fn run (&self, sender: Sender) { let user = &self.user; loop { let mut input = String::new(); match io::stdin().read_line(&mut input) { Ok(n) => { let message = Event::Message { sender: user, content: input, channel: None }; sender.send(message); } Err(error) => println!("error: {}", error), } } } }