From 20c5fdaa837b6e9bc05c8846077ae9b5a8b054f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanel=20Tagav=C3=A4li?= Date: Tue, 22 Mar 2016 13:38:25 +0200 Subject: [PATCH] fixes #217 --- examples/ircclient/src/ircclient/net/client.d | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/examples/ircclient/src/ircclient/net/client.d b/examples/ircclient/src/ircclient/net/client.d index 34c01646..deb5bbf2 100644 --- a/examples/ircclient/src/ircclient/net/client.d +++ b/examples/ircclient/src/ircclient/net/client.d @@ -162,11 +162,11 @@ class IRCUser { class UserList { Collection!IRCUser _users; - @property int length() { return _users.length; } - @property IRCUser opIndex(int index) { return _users[index]; } + @property size_t length() { return _users.length; } + @property IRCUser opIndex(size_t index) { return _users[index]; } void fromList(string userList) { _users.clear(); - for(;;) { + while(true) { string s = parseDelimitedParameter(userList); if (s.empty) break; @@ -174,20 +174,22 @@ class UserList { _users.add(u); } } - int findUser(string name) { - for(int i = 0; i < _users.length; i++) { + import std.typecons : Tuple; + Tuple!(bool, "found", size_t, "index") findUser(string name) { + foreach(i; 0.._users.length) { if (_users[i].nick == name) - return i; + return typeof(return)(true, i); } - return -1; + return typeof(return)(false, 0); } void addUser(string name) { - if (findUser(name) < 0) + if (findUser(name).found == false) _users.add(new IRCUser(name)); } void removeUser(string name) { - if (int index = findUser(name)) { - _users.remove(index); + auto user = findUser(name); + if (user.found) { + _users.remove(user.index); } } } @@ -377,7 +379,7 @@ public: void disconnect() { _socket.disconnect(); } - @property string nick() { + @property string nick() { return _nick; } @property void nick(string nickName) {