reifydb_routine/routine/
context.rs1use 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<'_, '_> {}