pub trait SourceDefProvider:
Send
+ Sync
+ 'static {
// Required method
fn source_def(&self) -> ConnectorDef;
// Provided methods
fn source_defs(&self) -> Vec<ConnectorDef> { ... }
fn validate_source(&self, _def: &ConnectorDef) -> Result<(), String> { ... }
}Expand description
Trait for connectors that can act as a data source.
Implement this trait to provide source connector metadata and validation.
Used by [SourceFactory] to obtain connector definitions.
§Example
ⓘ
impl SourceDefProvider for MyConnector {
fn source_def(&self) -> ConnectorDef {
ConnectorDef {
id: "my-source".into(),
kind: "custom".into(),
scope: ConnectorScope::Source,
allow_override: vec!["batch_size".into()],
default_params: Default::default(),
origin: None,
}
}
}Required Methods§
Sourcefn source_def(&self) -> ConnectorDef
fn source_def(&self) -> ConnectorDef
Returns the connector definition for source mode.
Provided Methods§
fn source_defs(&self) -> Vec<ConnectorDef>
Sourcefn validate_source(&self, _def: &ConnectorDef) -> Result<(), String>
fn validate_source(&self, _def: &ConnectorDef) -> Result<(), String>
Validates a source connector definition.
Override to add custom validation logic. Returns Ok(()) by default.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".