wp-core-connectors 0.5.2

Core connector registry and sink runtimes for WarpParse
Documentation
use crate::registry;

pub fn register_builtin_factories<S, R>(register_sinks: S, register_sources: R)
where
    S: FnOnce(),
    R: FnOnce(),
{
    register_sinks();
    register_sources();
}

pub fn init_runtime_registries<S, R>(register_sinks: S, register_sources: R)
where
    S: FnOnce(),
    R: FnOnce(),
{
    register_builtin_factories(register_sinks, register_sources);
    log_registered_kinds();
}

pub fn log_registered_kinds() {
    let sinks = registry::sink_diagnostics();
    if sinks.is_empty() {
        log::warn!("no sinks registered");
    } else {
        for (k, loc) in sinks {
            log::info!("sink kind='{}' at {}:{}", k, loc.file(), loc.line());
        }
    }
    let srcs = registry::source_diagnostics();
    if srcs.is_empty() {
        log::warn!("no sources registered");
    } else {
        for (k, loc) in srcs {
            log::info!("source kind='{}' at {}:{}", k, loc.file(), loc.line());
        }
    }
}