parseNumeric

Parser for RPL_WHOISCHANNELS

Format is 319 <client> <nick> <server mask> :<server description>

Examples

import std.range : only, takeNone;
import virc.common : User;
import virc.numerics.isupport : defaultModePrefixes;
{
	auto reply = parseNumeric!(Numeric.RPL_WHOISCHANNELS)(only("someone", "whoisuser", "#test3 +#test"), defaultModePrefixes, "#");
	assert(reply.get.user == User("whoisuser"));
	assert(reply.get.channels.length == 2);
	with(reply.get.channels[0]) {
		assert(channel == Channel("#test3"));
		assert(prefix.isNull);
	}
	with(reply.get.channels[1]) {
		assert(channel == Channel("#test"));
		assert(prefix.get == "+");
	}
}
{
	auto reply = parseNumeric!(Numeric.RPL_WHOISCHANNELS)(only("someone", "whoisuser"), defaultModePrefixes, "#");
	assert(reply.isNull);
}
{
	auto reply = parseNumeric!(Numeric.RPL_WHOISCHANNELS)(only("someone"), defaultModePrefixes, "#");
	assert(reply.isNull);
}
{
	auto reply = parseNumeric!(Numeric.RPL_WHOISCHANNELS)(takeNone(only("")), defaultModePrefixes, "#");
	assert(reply.isNull);
}

Meta