MoosicBox Environment Utils
A utility library for parsing and handling environment variables with type-safe conversions and compile-time macros.
Features
- Type-Safe Parsing: Parse environment variables to specific numeric types (usize, u64, u32, u16, i64, i32, i16, i8, f32)
- Compile-Time Macros: Extract environment variables at compile time with default values
- Const-Compatible Parsing: Const-friendly integer parsing functions for compile-time evaluation
- Optional Values: Handle missing environment variables gracefully with Option types
- Error Handling: Proper error types for parsing failures and missing variables
Installation
Add this to your Cargo.toml:
[]
= "0.1.1"
Usage
Basic Environment Variable Parsing
use ;
Compile-Time Environment Variable Macros
use ;
// Extract environment variables at compile time
const SERVER_PORT: usize = env_usize!;
const MAX_BUFFER_SIZE: usize = default_env_usize!;
const CACHE_TTL: u64 = default_env_u64!;
const WORKER_THREADS: u32 = default_env_u32!;
Different Numeric Types
use ;
async
String Environment Variables
use default_env;
Const Integer Parsing
use ;
const
const PARSED_VALUE: usize = compile_time_parsing;
API Reference
Runtime Functions
env_usize(name)- Parse required usize environment variabledefault_env_usize(name, default)- Parse usize with fallback defaultoption_env_*functions - Parse optional values for various typesdefault_env(name, default)- Get string environment variable with default
Compile-Time Macros
env_usize!(name)- Extract required usize at compile timedefault_env_usize!(name, default)- Extract usize with default at compile timedefault_env_u64!(name, default)- Extract u64 with default at compile timedefault_env_u32!(name, default)- Extract u32 with default at compile timeoption_env_*!macros - Extract optional values at compile time
Const Functions
parse_usize(s)- Parse string to usize (const-compatible)parse_isize(s)- Parse string to isize with sign support (const-compatible)
Error Handling
The library provides specific error types for different failure scenarios:
EnvUsizeError- Environment variable missing or parsing failedDefaultEnvUsizeError- Parsing failed (missing variables return default)OptionEnvUsizeError- Parsing failed for numeric typesOptionEnvF32Error- Parsing failed for floating pointParseIntError- Invalid digit encountered during const parsing
Performance
- Const functions enable compile-time evaluation
- Macro-based extraction has zero runtime cost
- Runtime parsing uses standard library implementations for reliability