The range of multiple nonempty values. Note: Returned range unescapes ';' character automatically.
assert(DesktopFile.splitValues("").empty); assert(DesktopFile.splitValues(";").empty); assert(DesktopFile.splitValues(";;;").empty); assert(equal(DesktopFile.splitValues("Application;Utility;FileManager;"), ["Application", "Utility", "FileManager"])); assert(equal(DesktopFile.splitValues("I\\;Me;\\;You\\;We\\;"), ["I;Me", ";You;We;"])); auto values = DesktopFile.splitValues("Application;Utility;FileManager;"); assert(values.front == "Application"); values.popFront(); assert(equal(values, ["Utility", "FileManager"])); auto saved = values.save; values.popFront(); assert(equal(values, ["FileManager"])); assert(equal(saved, ["Utility", "FileManager"]));
Some keys can have multiple values, separated by semicolon. This function helps to parse such kind of strings into the range.