Skip to content

Builder Pattern

Use builder pattern for complex configuration:

#[derive(Debug, Clone, Default)]
pub struct Config {
timeout: Duration,
retries: u32,
}
impl Config {
#[must_use]
pub const fn new() -> Self {
Self {
timeout: Duration::from_secs(30),
retries: 3,
}
}
#[must_use]
pub const fn with_timeout(mut self, timeout: Duration) -> Self {
self.timeout = timeout;
self
}
#[must_use]
pub const fn with_retries(mut self, retries: u32) -> Self {
self.retries = retries;
self
}
}