diff options
author | Zachary Dremann <dremann@gmail.com> | 2014-06-12 14:58:00 -0400 |
---|---|---|
committer | Zachary Dremann <dremann@gmail.com> | 2014-06-12 14:58:00 -0400 |
commit | 76f65af3a8b3956d019cac5de6d32a724f760c0f (patch) | |
tree | 47ab9c4ecdbab00944263b83a7a9ebca73f34799 | |
parent | 0dc97968422a078126dd9bf575002b335962b42c (diff) | |
download | rusty-irc-76f65af3a8b3956d019cac5de6d32a724f760c0f.tar.gz rusty-irc-76f65af3a8b3956d019cac5de6d32a724f760c0f.zip |
Usernames, etc don't need to be options.
-rw-r--r-- | src/lib.rs | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -29,19 +29,19 @@ pub mod state { } pub struct IrcClient<State> { - nick: Option<String>, - username: Option<String>, - real_name: Option<String>, + nick: String, + username: String, + real_name: String, state: State, } impl IrcClient <state::Disconnected> { pub fn new(nick: String, username: String, real_name: String) -> IrcClient<state::Disconnected> { - 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<Message>) -> Result<IrcClient<state::Connected>, (IoError, IrcClient<state::Disconnected>)> { + pub fn connect(self, host: &str, port: u16, message_sender: Sender<Message>) -> Result<IrcClient<state::Connected>, (IoError, IrcClient<state::Disconnected>)> { let stream = match TcpStream::connect(host, port) { Ok(stream) => stream, Err(e) => return Err((e, self)) @@ -49,10 +49,12 @@ impl IrcClient <state::Disconnected> { 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(), |