summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-09-06 18:39:51 -0400
committerJesse Luehrs <doy@tozt.net>2014-09-06 18:39:51 -0400
commitd64db47867cdd54cdc005333203436fce193c4fc (patch)
tree4522a4dacd5e1a23037c1283589f1e9a98233f62 /src
parent2d401b7685e6f142c5945075ba2d79abfa781f49 (diff)
downloadrust-irc-d64db47867cdd54cdc005333203436fce193c4fc.tar.gz
rust-irc-d64db47867cdd54cdc005333203436fce193c4fc.zip
pass in the client to callbacks
this requires run_loop_with to consume the client, since we need to be able to pass it in mutably. i think that is probably okay.
Diffstat (limited to 'src')
-rw-r--r--src/client.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/client.rs b/src/client.rs
index 3beda7d..1623b02 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -140,9 +140,10 @@ impl Client {
// storing closures very well yet if they need to receive a borrowed
// pointer, and we would need to pass the client object into the callback
// in order to make this work
- pub fn run_loop_with (&mut self, handler: |Message|) {
+ pub fn run_loop_with (mut self, handler: |&mut Client, Message|) {
loop {
- handler(self.read());
+ let m = self.read();
+ handler(&mut self, m);
}
}
}