diff options
Diffstat (limited to 'oryxc/src/errors.rs')
| -rw-r--r-- | oryxc/src/errors.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/oryxc/src/errors.rs b/oryxc/src/errors.rs index 290abc2..4ad88d6 100644 --- a/oryxc/src/errors.rs +++ b/oryxc/src/errors.rs @@ -12,7 +12,10 @@ use std::fmt::{ }; use std::io::Write; use std::path::Path; -use std::sync::OnceLock; +use std::sync::{ + LazyLock, + OnceLock, +}; use std::{ env, io, @@ -25,8 +28,9 @@ use crate::unicode; const TAB_AS_SPACES: &'static str = " "; const TABSIZE: usize = TAB_AS_SPACES.len(); -#[derive(Clone, Copy, Default, Eq, PartialEq)] +#[derive(Clone, Copy, Default, Eq, PartialEq, clap::ValueEnum)] pub enum ErrorStyle { + #[value(name = "oneline")] OneLine, #[default] Standard, @@ -35,12 +39,12 @@ pub enum ErrorStyle { pub static ERROR_STYLE: OnceLock<ErrorStyle> = OnceLock::new(); pub fn progname() -> &'static OsString { - static ARGV0: OnceLock<OsString> = OnceLock::new(); - return ARGV0.get_or_init(|| { + static ARGV0: LazyLock<OsString> = LazyLock::new(|| { let default = OsStr::new("oryxc"); let s = env::args_os().next().unwrap_or(default.into()); - return Path::new(&s).file_name().unwrap_or(default).to_os_string(); + Path::new(&s).file_name().unwrap_or(default).to_os_string() }); + &ARGV0 } #[macro_export] |