diff --git a/server/src/config.rs b/server/src/config.rs index 5ed11d3..b3c3836 100644 --- a/server/src/config.rs +++ b/server/src/config.rs @@ -1,5 +1,6 @@ use std::{collections::HashMap, ops::RangeInclusive, path::PathBuf}; +use cfg_if::cfg_if; use clap::{Parser, ValueEnum}; use lazy_static::lazy_static; use log::LevelFilter; @@ -353,10 +354,9 @@ impl Config { } } -#[derive(Clone, Copy, Eq, PartialEq, PartialOrd, Ord, Default, ValueEnum)] +#[derive(Clone, Copy, Eq, PartialEq, PartialOrd, Ord, ValueEnum)] pub enum ConfigFormat { #[cfg(feature = "toml")] - #[default] Toml, #[cfg(feature = "json")] Json, @@ -364,6 +364,22 @@ pub enum ConfigFormat { Yaml, } +impl Default for ConfigFormat { + fn default() -> Self { + cfg_if! { + if #[cfg(feature = "toml")] { + return Self::Toml; + } else if #[cfg(feature = "json")] { + return Self::Json; + } else if #[cfg(feature = "yaml")] { + return Self::Yaml; + } else { + compile_error!("no config format feature enabled - build will fail!"); + } + } + } +} + /// Performant server implementation of the Wisp protocol in Rust, made for epoxy. #[derive(Parser)] #[command(version = clap::crate_version!())] diff --git a/server/src/handle/twisp.rs b/server/src/handle/twisp.rs index bef1ceb..33e1271 100644 --- a/server/src/handle/twisp.rs +++ b/server/src/handle/twisp.rs @@ -103,7 +103,7 @@ fn set_term_size(fd: RawFd, size: Size) -> anyhow::Result<()> { let size = libc::winsize::from(size); let ret = unsafe { libc::ioctl(fd, libc::TIOCSWINSZ, std::ptr::addr_of!(size)) }; if ret == -1 { - Err(rustix::io::Errno::from_raw_os_error( + Err(nix::errno::Errno::from_raw( std::io::Error::last_os_error().raw_os_error().unwrap_or(0), ) .into())