#[cfg(feature = "csv_plugin")]
pub mod csv_plugin;
#[cfg(feature = "pcap_plugin")]
pub mod pcap_plugin;
use std::error::Error;
use rtlola_interpreter::monitor::Record;
use rtlola_interpreter::time::TimeRepresentation;
type EventResult<Rec, Time, Error> = Result<Option<(Rec, Time)>, Error>;
pub trait EventSource<InputTime: TimeRepresentation> {
type Rec: Record;
type Error: Error;
fn init_data(&self) -> Result<<Self::Rec as Record>::CreationData, Self::Error>;
fn next_event(&mut self) -> EventResult<Self::Rec, InputTime::InnerTime, Self::Error>;
}