parseNumeric

Parser for RPL_VERSION

Format is 351 <client> <version> <server> :<comments>

Examples

import std.algorithm.searching : canFind;
import std.array : array;
import std.range : only, takeNone;
import virc.ircsplitter : IRCSplitter;
{
	auto versionReply = parseNumeric!(Numeric.RPL_VERSION)(only("Someone", "ircd-seven-1.1.4(20170104-717fbca8dbac,charybdis-3.4-dev)", "localhost", "eHIKMpSZ6 TS6ow 7IZ"));
	assert(versionReply.get.version_ == "ircd-seven-1.1.4(20170104-717fbca8dbac,charybdis-3.4-dev)");
	assert(versionReply.get.server == "localhost");
	assert(versionReply.get.comments == "eHIKMpSZ6 TS6ow 7IZ");
}
{
	immutable versionReply = parseNumeric!(Numeric.RPL_VERSION)(takeNone(only("")));
	assert(versionReply.isNull);
}
{
	immutable versionReply = parseNumeric!(Numeric.RPL_VERSION)(only("Someone"));
	assert(versionReply.isNull);
}
{
	immutable versionReply = parseNumeric!(Numeric.RPL_VERSION)(only("Someone", "ircd-seven-1.1.4(20170104-717fbca8dbac,charybdis-3.4-dev)"));
	assert(versionReply.isNull);
}
{
	immutable versionReply = parseNumeric!(Numeric.RPL_VERSION)(only("Someone", "", "localhost"));
	assert(versionReply.isNull);
}

Meta