Skip to main content

ConnectorConfig

Derive Macro ConnectorConfig 

Source
#[derive(ConnectorConfig)]
{
    // Attributes available to this derive:
    #[config]
}
Expand description

Derive configuration parsing for connector config structs.

Generates from_config(), validate(), and config_keys() methods to eliminate boilerplate in connector configuration parsing.

§Attributes

  • #[config(key = "...")] — specifies the config key name
  • #[config(required)] — marks the field as required
  • #[config(default = "...")] — provides a default value
  • #[config(env = "...")] — reads from environment variable as fallback
  • #[config(description = "...")] — documentation for the key
  • #[config(duration_ms)] — parses the value as Duration from milliseconds

§Example

#[derive(ConnectorConfig)]
struct MyConfig {
    #[config(key = "bootstrap.servers", required, description = "Kafka brokers")]
    bootstrap_servers: String,

    #[config(key = "batch.size", default = "1000")]
    batch_size: usize,

    #[config(key = "timeout.ms", default = "30000", duration_ms)]
    timeout: std::time::Duration,

    #[config(key = "api.key", env = "MY_API_KEY")]
    api_key: Option<String>,
}

// Generated methods:
// - MyConfig::from_config(&ConnectorConfig) -> Result<Self, ConnectorError>
// - MyConfig::validate(&self) -> Result<(), ConnectorError>
// - MyConfig::config_keys() -> Vec<ConfigKeySpec>