Accessing Configuration in Code
Loading the configuration
use runique::config_runique::RuniqueConfig;
let config = RuniqueConfig::from_env();
println!("Debug: {}", config.debug);
println!("Port: {}", config.port);
println!("DB: {}", config.database_url);
Access in a handler
use runique::config_runique::RuniqueConfig;
async fn my_handler(template: TemplateContext) -> Response {
let config = &template.engine.config;
println!("Debug mode: {}", config.debug);
println!("Port: {}", config.server.port);
println!("IP: {}", config.server.ip_server);
println!("Allowed hosts: {:?}", config.security.allowed_hosts);
println!("Secret key: {}", config.security.secrete_key);
}
Conditional configuration
if template.engine.config.debug {
// Debug mode: detailed logs, templates reloaded
} else {
// Production mode: template cache, no sensitive logs
}
if template.engine.config.security.allowed_hosts.contains("*") {
// ⚠️ Warning: all hosts are allowed (dangerous in production!)
}
Configuration validation
Configuration is validated at startup:
let config = RuniqueConfig::from_env()
.expect("Invalid configuration");
// Returns Err() if:
// - DATABASE_URL is missing
// - SECRETE_KEY is missing
// - Variables are invalid