diff options
Diffstat (limited to 'src/framework/standard/args.rs')
| -rw-r--r-- | src/framework/standard/args.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/framework/standard/args.rs b/src/framework/standard/args.rs index d03076f..8f166b6 100644 --- a/src/framework/standard/args.rs +++ b/src/framework/standard/args.rs @@ -18,7 +18,7 @@ impl<E: StdError> From<E> for Error<E> { fn from(e: E) -> Self { Error::Parse(e) } -} +} impl<E: StdError> StdError for Error<E> { fn description(&self) -> &str { @@ -60,7 +60,12 @@ pub struct Args { } impl Args { - pub fn new(message: &str, delimiter: &str) -> Self { + pub fn new(message: &str, possible_delimiters: Vec<String>) -> Self { + let delimiter = possible_delimiters + .iter() + .find(|&d| message.contains(d)) + .map_or(possible_delimiters[0].as_str(), |s| s.as_str()); + let split = if message.trim().is_empty() { Vec::new() } else { |