#![feature(default_field_values)]
use v_utils_macros::{LiveSettings, MyConfigPrimitives, Settings};
#[derive(Clone, Debug, Default, LiveSettings, MyConfigPrimitives, Settings)]
#[allow(unused)]
struct AppConfig {
#[serde(default)]
pub port: u16 = 50736,
#[serde(default)]
pub debug: bool = true,
#[serde(default)]
pub workers: usize = 8,
#[serde(default)]
pub maybe_threads: Option<u32> = None,
}
#[test]
fn defaults_take_effect() {
let c = AppConfig::default();
assert_eq!(c.port, 50736);
assert!(c.debug);
assert_eq!(c.workers, 8);
assert!(c.maybe_threads.is_none());
}
#[test]
fn try_build_signature_compiles() {
let _f: fn(SettingsFlags) -> Result<AppConfig, v_utils::__internal::SettingsError> = AppConfig::try_build;
}