Skip to main content

reifydb_sdk/transform/
mod.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2026 ReifyDB
3
4pub 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 {}