parseNumeric

Parser for RPL_TRACESERVICE.

Format is 207 <client> Service <class> <name> <type> <active_type>

  1. auto parseNumeric(T input)
  2. auto parseNumeric(T input)
    parseNumeric
    ()
    if (
    is(ElementType!T : string)
    )
  3. auto parseNumeric(T input)

Examples

import std.range : only, takeNone;
//Need real world examples... No idea what these will really look like
{
	immutable trace = parseNumeric!(Numeric.RPL_TRACESERVICE)(only("someone", "Service", "classy", "fred", "something", "no_idea"));
	assert(trace.get.class_ == "classy");
	assert(trace.get.name == "fred");
	assert(trace.get.type == "something");
	assert(trace.get.activeType == "no_idea");
}
{
	immutable badTrace = parseNumeric!(Numeric.RPL_TRACESERVICE)(takeNone!(string[]));
	assert(badTrace.isNull);
}
{
	immutable badTrace = parseNumeric!(Numeric.RPL_TRACESERVICE)(only("someone"));
	assert(badTrace.isNull);
}
{
	immutable badTrace = parseNumeric!(Numeric.RPL_TRACESERVICE)(only("someone", "Service"));
	assert(badTrace.isNull);
}
{
	immutable badTrace = parseNumeric!(Numeric.RPL_TRACESERVICE)(only("someone", "Service", "classy"));
	assert(badTrace.isNull);
}
{
	immutable badTrace = parseNumeric!(Numeric.RPL_TRACESERVICE)(only("someone", "Service", "classy", "fred"));
	assert(badTrace.isNull);
}
{
	immutable badTrace = parseNumeric!(Numeric.RPL_TRACESERVICE)(only("someone", "Service", "classy", "fred", "something"));
	assert(badTrace.isNull);
}

Meta