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