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); }
Parser for RPL_TRACESERVICE.
Format is 207 <client> Service <class> <name> <type> <active_type>