//Numeric.RPL_KEYVALUE import std.range : only, takeNone; import virc.common : User; with(parseNumeric!(Numeric.RPL_KEYVALUE)(only("someone!test@example.com", "url", "*", "http://www.example.com"), "@", "#").get) { assert(target== User("someone!test@example.com")); assert(key == "url"); assert(visibility == "*"); assert(value == "http://www.example.com"); } assert(parseNumeric!(Numeric.RPL_KEYVALUE)(takeNone(only("")), "@", "#").isNull); assert(parseNumeric!(Numeric.RPL_KEYVALUE)(only("*"), "@", "#").isNull); assert(parseNumeric!(Numeric.RPL_KEYVALUE)(only("*", "url"), "@", "#").isNull); with(parseNumeric!(Numeric.RPL_KEYVALUE)(only("*", "url", "*"), "@", "#").get) { assert(target == "*"); assert(key == "url"); assert(visibility == "*"); assert(value.isNull); }
Format is 761 <Target> <Key> <Visibility>[ :<Value>]