// Copyright 2024 RustFS Team // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. use std::env; pub fn get_env_usize(key: &str, default: usize) -> usize { env::var(key).ok().and_then(|v| v.parse().ok()).unwrap_or(default) } pub fn get_env_u64(key: &str, default: u64) -> u64 { env::var(key).ok().and_then(|v| v.parse().ok()).unwrap_or(default) } pub fn get_env_u32(key: &str, default: u32) -> u32 { env::var(key).ok().and_then(|v| v.parse().ok()).unwrap_or(default) } pub fn get_env_str(key: &str, default: &str) -> String { env::var(key).unwrap_or_else(|_| default.to_string()) } pub fn get_env_opt_u64(key: &str) -> Option { env::var(key).ok().and_then(|v| v.parse().ok()) } pub fn get_env_bool(key: &str, default: bool) -> bool { env::var(key) .ok() .and_then(|v| match v.to_lowercase().as_str() { "1" | "true" | "yes" => Some(true), "0" | "false" | "no" => Some(false), _ => None, }) .unwrap_or(default) }