macro_rules! client_config_setters {
($config:ident) => { ... };
}Expand description
Generates a client builder’s transport setters over a ClientConfig
field: base_url, timeout_ms, pool_size, with_retry_config,
max_concurrent, runtime and http_transport.
runtime names polyoxide_rt::Runtime through a doc-hidden re-export of
core’s, so the invoking crate needs no polyoxide-rt dependency for it.
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));