Skip to main content

flwrs_plugin/transform/
plugin.rs

1use crate::plugin::core::InitializeRequest;
2use crate::plugin::error::{InitializeError, ShutdownError, TransformError};
3use crate::schema::transform::TransformEvent;
4use tokio::sync::Mutex;
5
6pub trait Transform<'a> {
7    fn initialize(
8        &mut self,
9        plugin_id: String,
10        log_level: crate::schema::common::log_level::Enum,
11        sink: &'a Mutex<crate::transform::local_sink::LocalSink>,
12    ) -> Result<InitializeRequest, InitializeError>;
13
14    fn shutdown(&mut self) -> Result<(), ShutdownError>;
15
16    fn version(&self) -> String;
17
18    fn process_event(&mut self, event: TransformEvent) -> Result<TransformEvent, TransformError>;
19}