use notedthat_core::{EventPublisher, EventSource};
use notedthat_indexer::IndexEvent;
use tokio::sync::mpsc::Sender;
#[derive(Clone, Copy)]
pub struct WriteSinks<'a> {
pub indexer_tx: &'a Sender<IndexEvent>,
pub events: Option<&'a dyn EventPublisher>,
pub source: EventSource,
}
impl<'a> WriteSinks<'a> {
#[must_use]
pub fn new(
indexer_tx: &'a Sender<IndexEvent>,
events: Option<&'a dyn EventPublisher>,
source: EventSource,
) -> Self {
Self {
indexer_tx,
events,
source,
}
}
#[must_use]
pub fn indexer_only(indexer_tx: &'a Sender<IndexEvent>) -> Self {
Self::new(indexer_tx, None, EventSource::Http)
}
}