reifydb_sdk/transform/
mod.rs1pub mod context;
5pub mod exports;
6pub mod wrapper;
7
8use crate::{
9 config::Config, error::Result, operator::change::BorrowedColumns, transform::context::FFITransformContext,
10};
11
12pub trait FFITransformMetadata {
13 const NAME: &'static str;
14
15 const API: u32;
16
17 const VERSION: &'static str;
18
19 const DESCRIPTION: &'static str;
20}
21
22pub trait FFITransform: 'static {
23 fn new(config: &Config) -> Result<Self>
24 where
25 Self: Sized;
26
27 fn transform(&mut self, ctx: &mut FFITransformContext, input: BorrowedColumns<'_>) -> Result<()>;
28}
29
30pub trait FFITransformWithMetadata: FFITransform + FFITransformMetadata {}
31impl<T> FFITransformWithMetadata for T where T: FFITransform + FFITransformMetadata {}