Skip to main content

Module loader

Module loader 

Source
Expand description

Event-driven data loader orchestrator. Generic event-driven data loader.

DataLoader is the central orchestrator that connects a DataSource to one or more EventSinks. It handles:

  • Source → fan-out task → per-sink tasks pipeline
  • Bounded channels for backpressure
  • Graceful shutdown via CancellationToken
  • Error propagation

§Example

use tradingview::loader::DataLoader;
use tradingview::sink::{ChannelSink, CallbackSink};
use tradingview::source::tradingview::TradingViewSource;

let (channel_sink, mut rx) = ChannelSink::new(1024);

let mut loader = DataLoader::builder()
    .source(TradingViewSource::new())
    .sink(channel_sink)
    .sink(CallbackSink::new("debug", |events| async move {
        for event in &events {
            tracing::debug!("{:?}", event);
        }
        Ok(())
    }))
    .build()?;

loader.start().await?;
// ... events flow ...
loader.shutdown().await?;

Structs§

DataLoader
Event-driven data loader — connects a source to multiple sinks.
DataLoaderBuilder
Builder for DataLoader.
LoaderConfig
Configuration for the data loader.