[−][src]Crate splitty
A no-std string splitter for which spaces between quotes aren't separators.
use splitty::*; let cmd = "xterm -e \"vi /some/path\""; let mut token = split_unquoted_char(cmd, ' ') .unwrap_quotes(true); assert_eq!(token.next(), Some("xterm")); assert_eq!(token.next(), Some("-e")); assert_eq!(token.next(), Some("vi /some/path")); assert_eq!(token.next(), None);
Quotes not starting or ending a substring (ie with spaces or ends on the relevant side) are handled as ordinary characters.
Splitty has a limited set of features but is tested for corner-cases:
use splitty::*; let cmd = r#" a "2 * 试" x"x "z "#; let mut token = split_unquoted_whitespace(cmd) .unwrap_quotes(true); assert_eq!(token.next(), Some("a")); assert_eq!(token.next(), Some("2 * 试")); assert_eq!(token.next(), Some("x\"x")); assert_eq!(token.next(), Some("\"z ")); assert_eq!(token.next(), None);
Structs
SplitUnquotedChar | A string splitter splitting on a specific char unless it's
part of a substring starting and ending with a quote ( |
Functions
split_unquoted_char | return a new iterator of the the |
split_unquoted_whitespace | return a new iterator of the the whitespace separated tokens of the given string, taking quotes into account |