Implemented Display for Message.

This commit is contained in:
Aaron Weiss 2016-03-17 21:39:58 -04:00
parent e4495940fc
commit 863946ecb8
5 changed files with 11 additions and 4 deletions

View file

@ -16,7 +16,7 @@ fn main() {
let server = server.clone(); let server = server.clone();
let _ = spawn(move || { let _ = spawn(move || {
for msg in server.iter() { for msg in server.iter() {
print!("{}", msg.unwrap().to_string()); print!("{}", msg.unwrap());
} }
}).join(); // You might not want to join here for actual multi-threading. }).join(); // You might not want to join here for actual multi-threading.
} }

View file

@ -15,7 +15,7 @@ fn main() {
server.identify().unwrap(); server.identify().unwrap();
for message in server.iter() { for message in server.iter() {
let message = message.unwrap(); // We'll just panic if there's an error. let message = message.unwrap(); // We'll just panic if there's an error.
print!("{}", message.to_string()); print!("{}", message);
match message.command { match message.command {
Command::PRIVMSG(ref target, ref msg) => if msg.contains("pickles") { Command::PRIVMSG(ref target, ref msg) => if msg.contains("pickles") {
server.send_privmsg(target, "Hi!").unwrap(); server.send_privmsg(target, "Hi!").unwrap();

View file

@ -16,7 +16,7 @@ fn main() {
server.identify().unwrap(); server.identify().unwrap();
for message in server.iter() { for message in server.iter() {
let message = message.unwrap(); // We'll just panic if there's an error. let message = message.unwrap(); // We'll just panic if there's an error.
print!("{}", message.to_string()); print!("{}", message);
match message.command { match message.command {
Command::PRIVMSG(ref target, ref msg) => if msg.contains("pickles") { Command::PRIVMSG(ref target, ref msg) => if msg.contains("pickles") {
server.send_privmsg(target, "Hi!").unwrap(); server.send_privmsg(target, "Hi!").unwrap();

View file

@ -17,7 +17,7 @@ fn main() {
let server2 = server.clone(); let server2 = server.clone();
// Let's set up a loop that just prints the messages. // Let's set up a loop that just prints the messages.
spawn(move || { spawn(move || {
server2.iter().map(|m| print!("{}", m.unwrap().to_string())).count(); server2.iter().map(|m| print!("{}", m.unwrap())).count();
}); });
loop { loop {
server.send_privmsg("#vana", "TWEET TWEET").unwrap(); server.send_privmsg("#vana", "TWEET TWEET").unwrap();

View file

@ -1,5 +1,6 @@
//! Messages to and from the server. //! Messages to and from the server.
use std::borrow::ToOwned; use std::borrow::ToOwned;
use std::fmt::{Display, Formatter, Result as FmtResult};
use std::io::{Result as IoResult}; use std::io::{Result as IoResult};
use std::str::FromStr; use std::str::FromStr;
use client::data::Command; use client::data::Command;
@ -119,6 +120,12 @@ impl<'a> From<&'a str> for Message {
} }
} }
impl Display for Message {
fn fmt(&self, f: &mut Formatter) -> FmtResult {
write!(f, "{}", self.to_string())
}
}
/// A message tag as defined by [IRCv3.2](http://ircv3.net/specs/core/message-tags-3.2.html). /// A message tag as defined by [IRCv3.2](http://ircv3.net/specs/core/message-tags-3.2.html).
#[derive(Clone, PartialEq, Debug)] #[derive(Clone, PartialEq, Debug)]
pub struct Tag(String, Option<String>); pub struct Tag(String, Option<String>);