Skip to main content

SourceDefProvider

Trait SourceDefProvider 

Source
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§

Source

fn source_def(&self) -> ConnectorDef

Returns the connector definition for source mode.

Provided Methods§

Source

fn source_defs(&self) -> Vec<ConnectorDef>

Source

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".

Implementors§