/ src / sources / mod.rs
mod.rs
 1  //! Sources: where events come from.
 2  
 3  pub mod file;
 4  pub mod stdin;
 5  #[cfg(feature = "kafka")]
 6  pub mod kafka;
 7  
 8  use anyhow::Result;
 9  
10  #[derive(Debug, Clone)]
11  pub struct SourceLine {
12      pub line: String,
13      pub bytes: Vec<u8>,
14      pub topic: Option<String>,
15  }
16  
17  /// A source yields raw payloads plus optional metadata.
18  pub trait Source {
19      fn next_line(&mut self) -> Result<Option<SourceLine>>;
20  }