Skip to main content

reifydb_engine/procedure/
mod.rs

1// SPDX-License-Identifier: AGPL-3.0-or-later
2// Copyright (c) 2025 ReifyDB
3
4pub mod context;
5#[cfg(reifydb_target = "native")]
6pub mod ffi;
7pub mod identity_inject;
8#[cfg(reifydb_target = "native")]
9pub mod loader;
10pub mod registry;
11pub mod system;
12pub mod wasm;
13pub mod wasm_loader;
14
15use reifydb_core::value::column::columns::Columns;
16use reifydb_transaction::transaction::Transaction;
17use reifydb_type::Result;
18
19/// A server-side procedure that can mutate database state within a transaction.
20pub trait Procedure: Send + Sync {
21	fn call(&self, ctx: &context::ProcedureContext, tx: &mut Transaction<'_>) -> Result<Columns>;
22}