diff options
| author | a14m <[email protected]> | 2021-04-01 23:37:09 +0200 |
|---|---|---|
| committer | a14m <[email protected]> | 2021-04-01 23:37:09 +0200 |
| commit | 7dce9b1c8acb4a57390a037d23e8cd4ce01dd914 (patch) | |
| tree | 5219b1909ab6a1cd097675a1d36aba2f00392df6 | |
| parent | 1a4ff7c28a1dc8ee3e1aa22e8e5941b37e7d1adc (diff) | |
Add the delay opt validations
| -rw-r--r-- | CLI/rust/src/game_of_life.rs | 1 | ||||
| -rw-r--r-- | CLI/rust/src/game_of_life/opts.rs | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/CLI/rust/src/game_of_life.rs b/CLI/rust/src/game_of_life.rs index c854e7f..4b1e979 100644 --- a/CLI/rust/src/game_of_life.rs +++ b/CLI/rust/src/game_of_life.rs @@ -66,6 +66,7 @@ pub(crate) fn options() -> Result<ArgMatches, Error> { .short('d') .long("delay") .default_value("50") + .validator(opts::validators::is_positive) .display_order(6) ) .get_matches(); diff --git a/CLI/rust/src/game_of_life/opts.rs b/CLI/rust/src/game_of_life/opts.rs index c0ece98..5e52715 100644 --- a/CLI/rust/src/game_of_life/opts.rs +++ b/CLI/rust/src/game_of_life/opts.rs @@ -37,4 +37,13 @@ pub(crate) mod validators { Err(e) => Err(e.to_string()), } } + + /// Validator to check if delay value is positive + pub(crate) fn is_positive(val: &str) -> Result<(), String> { + match val.parse::<i16>() { + Ok(n) if n.is_positive() => Ok(()), + Ok(_) => Err(String::from("must be postive value (so far)")), + Err(e) => Err(e.to_string()), + } + } } |
