import virc.common : User; import std.range : only, takeNone; { immutable reply = parseNumeric!(Numeric.RPL_WHOISUSER)(only("someone", "whoisuser", "someUsername", "someHostname", "*", "a real name")); assert(reply.get.user == User("whoisuser")); assert(reply.get.username == "someUsername"); assert(reply.get.hostname == "someHostname"); assert(reply.get.realname == "a real name"); } { immutable reply = parseNumeric!(Numeric.RPL_WHOISUSER)(only("someone", "whoisuser", "someUsername", "someHostname", "*")); assert(reply.isNull); } { immutable reply = parseNumeric!(Numeric.RPL_WHOISUSER)(only("someone", "whoisuser", "someUsername", "someHostname")); assert(reply.isNull); } { immutable reply = parseNumeric!(Numeric.RPL_WHOISUSER)(only("someone", "whoisuser", "someUsername")); assert(reply.isNull); } { immutable reply = parseNumeric!(Numeric.RPL_WHOISUSER)(only("someone", "whoisuser")); assert(reply.isNull); } { immutable reply = parseNumeric!(Numeric.RPL_WHOISUSER)(only("someone")); assert(reply.isNull); } { immutable reply = parseNumeric!(Numeric.RPL_WHOISUSER)(takeNone(only(""))); assert(reply.isNull); }
Parser for RPL_WHOISUSER
Format is 311 <client> <nick> <user> <host> * :<real name>