parseNumeric

  1. void parseNumeric(T input, ISupport iSupport)
  2. auto parseNumeric(T input)
    parseNumeric
    ()

Examples

 //Numeric.RPL_ISUPPORT
	import std.exception : assertNotThrown, assertThrown;
	import std.range : only;
	import virc.modes : ModeType;
	{
		auto support = parseNumeric!(Numeric.RPL_ISUPPORT)(only("someone", "STATUSMSG=~&@%+", "CHANLIMIT=#:2", "CHANMODES=a,b,c,d", "CHANTYPES=#", "are supported by this server"));
		assert(support.statusMessage == "~&@%+");
		assert(support.chanLimits == ['#': 2UL]);
		assert(support.channelTypes == "#");
		assert(support.channelModeTypes == ['a':ModeType.a, 'b':ModeType.b, 'c':ModeType.c, 'd':ModeType.d]);
		parseNumeric!(Numeric.RPL_ISUPPORT)(only("someone", "-STATUSMSG", "-CHANLIMIT", "-CHANMODES", "-CHANTYPES", "are supported by this server"), support);
		assert(support.statusMessage == support.statusMessage.init);
		assert(support.chanLimits == support.chanLimits.init);
		assert(support.channelTypes == "#&!+");
		assert(support.channelModeTypes == support.channelModeTypes.init);
	}
	{
		auto support = parseNumeric!(Numeric.RPL_ISUPPORT)(only("someone", "SILENCE=4", "are supported by this server"));
		assert(support.silence == 4);
		parseNumeric!(Numeric.RPL_ISUPPORT)(only("someone", "SILENCE", "are supported by this server"), support);
		assert(support.silence == ulong.max);
		parseNumeric!(Numeric.RPL_ISUPPORT)(only("someone", "SILENCE=6", "are supported by this server"), support);
		parseNumeric!(Numeric.RPL_ISUPPORT)(only("someone" ,"-SILENCE", "are supported by this server"), support);
		assert(support.silence.isNull);
	}
	{
		assertNotThrown(parseNumeric!(Numeric.RPL_ISUPPORT)(only("someone", "are supported by this server")));
	}

Meta