#[main]
Expand description
Composition root for application entry point.
Inspired by #[tokio::main]
Implements dependency injection composition root pattern for application entry point.
Examples
#[ruex::main {
backtrace = {
level = Short,
},
log = {
level = Info,
output = Stdout,
}
}]
fn main() {}
Config
Configuration fields can be omitted.
struct MainConfig {
backtrace: BacktraceConfig,
log: LogConfig,
}
struct LogConfig {
level: LogLevel,
output: LogOutput,
}
enum LogOutput {
#[default]
StdOut,
Syslog,
File(String),
}
enum LogLevel {
Trace,
Debug,
#[default]
Info,
Warn,
Error,
}
struct BacktraceConfig {
level: BactraceLevel,
}
enum BactraceLevel {
None,
#[default]
Short,
Full,
}