From 76f65af3a8b3956d019cac5de6d32a724f760c0f Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Thu, 12 Jun 2014 14:58:00 -0400 Subject: Usernames, etc don't need to be options. --- src/lib.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 27c8c9f..2574b3e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -29,19 +29,19 @@ pub mod state { } pub struct IrcClient { - nick: Option, - username: Option, - real_name: Option, + nick: String, + username: String, + real_name: String, state: State, } impl IrcClient { pub fn new(nick: String, username: String, real_name: String) -> IrcClient { - IrcClient { nick: Some(nick), username: Some(username), real_name: Some(real_name), state: state::Disconnected } + IrcClient { nick: nick, username: username, real_name: real_name, state: state::Disconnected } } #[allow(experimental)] - pub fn connect(mut self, host: &str, port: u16, message_sender: Sender) -> Result, (IoError, IrcClient)> { + pub fn connect(self, host: &str, port: u16, message_sender: Sender) -> Result, (IoError, IrcClient)> { let stream = match TcpStream::connect(host, port) { Ok(stream) => stream, Err(e) => return Err((e, self)) @@ -49,10 +49,12 @@ impl IrcClient { let (send_writer, rec_writer) = channel(); + let IrcClient { nick:nick, username: username, real_name: real_name, .. } = self; + let connection = IrcClient{ - nick: self.nick.take(), - username: self.username.take(), - real_name: self.real_name.take(), + nick: nick, + username: username, + real_name: real_name, state: state::Connected { stream: stream.clone(), output: send_writer.clone(), -- cgit v1.2.3