flwrs_plugin/source/
plugin.rs1use tokio::sync::Mutex;
2use crate::plugin::core::InitializeRequest;
3use crate::plugin::error::{InitializeError, ShutdownError, SourceError};
4use crate::schema::common::log_level::Enum as LogLevel;
5use crate::source::local_sink::LocalSink;
6
7pub trait Source<'a> {
8 fn initialize(
9 &mut self,
10 plugin_id: String,
11 log_level: LogLevel,
12 sink: &'a Mutex<LocalSink>,
13 ) -> Result<InitializeRequest, InitializeError>;
14
15 fn shutdown(&mut self) -> Result<(), ShutdownError>;
16
17 fn version(&self) -> String;
18
19 fn run(&self) -> Result<(), SourceError>;
20}