summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authora14m <[email protected]>2021-04-01 23:37:09 +0200
committera14m <[email protected]>2021-04-01 23:37:09 +0200
commit7dce9b1c8acb4a57390a037d23e8cd4ce01dd914 (patch)
tree5219b1909ab6a1cd097675a1d36aba2f00392df6
parent1a4ff7c28a1dc8ee3e1aa22e8e5941b37e7d1adc (diff)
Add the delay opt validations
-rw-r--r--CLI/rust/src/game_of_life.rs1
-rw-r--r--CLI/rust/src/game_of_life/opts.rs9
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()),
+ }
+ }
}