parseNumeric

Parser for RPL_WHOSPCRPL

Format is 354 <client> [token] [channel] [user] [ip] [host] [server] [nick] [flags] [hopcount] [idle] [account] [oplevel] [:realname]

Examples

import virc.common : User;
import std.range : only, takeNone;
{
	immutable reply = parseNumeric!(Numeric.RPL_WHOSPCRPL)(only("mynick", "#ircv3", "~cooluser", "coolhost", "cooluser", "coolaccount", "Cool User"), "cuhnar");
	assert(reply.get.channel.get == "#ircv3");
	assert(reply.get.ident.get == "~cooluser");
	assert(reply.get.host.get == "coolhost");
	assert(reply.get.nick.get == "cooluser");
	assert(reply.get.account.get == "coolaccount");
	assert(reply.get.realname.get == "Cool User");
}
{
	immutable reply = parseNumeric!(Numeric.RPL_WHOSPCRPL)(only("mynick", "#ircv3", "~cooluser", "coolhost", "cooluser", "0", "Cool User"), "cuhnar");
	assert(reply.get.channel.get == "#ircv3");
	assert(reply.get.ident.get == "~cooluser");
	assert(reply.get.host.get == "coolhost");
	assert(reply.get.nick.get == "cooluser");
	assert(reply.get.account.isNull);
	assert(reply.get.realname.get == "Cool User");
}
{
	immutable reply = parseNumeric!(Numeric.RPL_WHOSPCRPL)(only("mynick", "#ircv3", "~cooluser", "coolhost", "cooluser", "coolaccount"), "cuhnar");
	assert(reply.isNull);
}
{
	immutable reply = parseNumeric!(Numeric.RPL_WHOSPCRPL)(only("mynick", "#ircv3", "~cooluser", "coolhost", "cooluser"), "cuhnar");
	assert(reply.isNull);
}
{
	immutable reply = parseNumeric!(Numeric.RPL_WHOSPCRPL)(only("mynick", "#ircv3", "~cooluser", "coolhost"), "cuhnar");
	assert(reply.isNull);
}
{
	immutable reply = parseNumeric!(Numeric.RPL_WHOSPCRPL)(only("mynick", "#ircv3", "~cooluser"), "cuhnar");
	assert(reply.isNull);
}
{
	immutable reply = parseNumeric!(Numeric.RPL_WHOSPCRPL)(only("mynick", "#ircv3"), "cuhnar");
	assert(reply.isNull);
}
{
	immutable reply = parseNumeric!(Numeric.RPL_WHOSPCRPL)(only("mynick"), "cuhnar");
	assert(reply.isNull);
}
{
	immutable reply = parseNumeric!(Numeric.RPL_WHOSPCRPL)(takeNone(only("")), "cuhnar");
	assert(reply.isNull);
}

Meta