#![allow(dead_code)]
use envstruct::prelude::*;
use serial_test::*;
use std::{env, num::NonZeroU64};
#[test]
#[serial]
fn test_non_zero() {
#[derive(EnvStruct, Debug)]
pub struct Config {
pub non_zero_number: NonZeroU64,
}
{
env::set_var("TEST_NON_ZERO_NUMBER", "42");
let config = Config::with_prefix("TEST").unwrap();
assert_eq!(config.non_zero_number, NonZeroU64::new(42).unwrap());
}
{
env::set_var("TEST_NON_ZERO_NUMBER", "0");
let parse_result = Config::with_prefix("TEST");
assert!(parse_result.is_err());
assert!(matches!(
parse_result.err().unwrap(),
envstruct::EnvStructError::ParseEnvError { .. }
));
}
{
env::set_var("TEST_NON_ZERO_NUMBER", "-1");
let parse_result = Config::with_prefix("TEST");
assert!(parse_result.is_err());
assert!(matches!(
parse_result.err().unwrap(),
envstruct::EnvStructError::ParseEnvError { .. }
));
}
}