From fe8e043b8aaf77c083747bf11760f29b53df0bba Mon Sep 17 00:00:00 2001
From: Jake Howard <git@theorangeone.net>
Date: Sat, 1 Jan 2022 12:56:44 +0000
Subject: [PATCH] Add feature to enable use of `Option::or` in const context

---
 src/main.rs | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 67b21322..a0d45666 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,4 +1,5 @@
 #![forbid(unsafe_code)]
+#![feature(const_option_ext)]
 #![cfg_attr(feature = "unstable", feature(ip))]
 // The recursion_limit is mainly triggered by the json!() macro.
 // The more key/value pairs there are the more recursion occurs.
@@ -76,15 +77,7 @@ const HELP: &str = "\
             -v, --version    Prints the app version
 ";
 
-// HACK: Option::or cannot be used in a constant context
-const fn get_version() -> Option<&'static str> {
-    let bwrs_version = option_env!("BWRS_VERSION");
-    match bwrs_version {
-        Some(_) => bwrs_version,
-        None => option_env!("VW_VERSION"),
-    }
-}
-pub const VERSION: Option<&str> = get_version();
+pub const VERSION: Option<&str> = option_env!("BWRS_VERSION").or(option_env!("VW_VERSION"));
 
 fn parse_args() {
     let mut pargs = pico_args::Arguments::from_env();