Skip to main content

reifydb_routine/routine/
context.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2025 ReifyDB
3
4use reifydb_catalog::catalog::Catalog;
5use reifydb_core::util::ioc::IocContainer;
6use reifydb_runtime::context::RuntimeContext;
7use reifydb_transaction::transaction::Transaction;
8use reifydb_type::{fragment::Fragment, params::Params, value::identity::IdentityId};
9
10use super::{Context, sealed};
11
12pub struct FunctionContext<'a> {
13	pub fragment: Fragment,
14	pub identity: IdentityId,
15	pub row_count: usize,
16	pub runtime_context: &'a RuntimeContext,
17}
18
19impl sealed::Sealed for FunctionContext<'_> {}
20impl Context for FunctionContext<'_> {}
21
22pub struct ProcedureContext<'a, 'tx> {
23	pub fragment: Fragment,
24	pub identity: IdentityId,
25	pub row_count: usize,
26	pub runtime_context: &'a RuntimeContext,
27	pub tx: &'a mut Transaction<'tx>,
28	pub params: &'a Params,
29	pub catalog: &'a Catalog,
30	pub ioc: &'a IocContainer,
31}
32
33impl sealed::Sealed for ProcedureContext<'_, '_> {}
34impl Context for ProcedureContext<'_, '_> {}