Skip to main content

client_config_setters

Macro client_config_setters 

Source
macro_rules! client_config_setters {
    ($config:ident) => { ... };
}
Expand description

Generates a client builder’s five transport setters over a ClientConfig field: base_url, timeout_ms, pool_size, with_retry_config and max_concurrent.

Invoke it inside the builder’s impl, naming the field that holds the config. The builder’s build reads the config back through ClientConfig::http_builder.

use polyoxide_core::ClientConfig;

pub struct MyBuilder {
    config: ClientConfig,
}

impl MyBuilder {
    polyoxide_core::client_config_setters!(config);
}

let builder = MyBuilder { config: ClientConfig::new("https://example.com", 4) }
    .timeout_ms(5_000)
    .max_concurrent(2);
assert_eq!(builder.config.timeout_ms, 5_000);
assert_eq!(builder.config.max_concurrent, Some(2));