about summary refs log tree commit diff
diff options
context:
space:
mode:
authorgennyble <gen@nyble.dev>2025-10-08 17:27:16 -0500
committergennyble <gen@nyble.dev>2025-10-08 17:27:16 -0500
commit4ff4bdc58079d2938e011c0e84f50016c69cb64e (patch)
tree631e2e2656423d34e1e7076a439c9e60b4c6d0cb
parentf0b5e86a590669037b62d935cbac0c99bedbb498 (diff)
downloadscurvy-4ff4bdc58079d2938e011c0e84f50016c69cb64e.tar.gz
scurvy-4ff4bdc58079d2938e011c0e84f50016c69cb64e.zip
Implement parse_or() as unwrap_or() shorthand
-rw-r--r--src/lib.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index d27c8de..7e3842d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -123,6 +123,16 @@ impl Scurvy {
 		}
 	}
 
+	/// Shorthand for [Scurvy::parse] followed by `unwrap_or()`
+	pub fn parse_or<T: FromStr, F: Into<Formula<T>>>(
+		&self,
+		key: &str,
+		formula: F,
+		default: T,
+	) -> T {
+		self.parse(key, formula).unwrap_or(default)
+	}
+
 	pub fn parse_req<T: FromStr, F: Into<Formula<T>>>(&self, key: &str, formula: F) -> T {
 		let formula = formula.into();
 		let missing = formula.missing.clone();