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> {
22 pub fragment: Fragment,
23 pub identity: IdentityId,
24 pub row_count: usize,
25 pub runtime_context: &'a RuntimeContext,
26}
27
28impl sealed::Sealed for FunctionContext<'_> {}
29impl Context for FunctionContext<'_> {}
30
31pub struct ProcedureContext<'a, 'tx> {
38 pub fragment: Fragment,
39 pub identity: IdentityId,
40 pub row_count: usize,
41 pub runtime_context: &'a RuntimeContext,
42 pub tx: &'a mut Transaction<'tx>,
43 pub params: &'a Params,
44 pub catalog: &'a Catalog,
45 pub ioc: &'a IocContainer,
46}
47
48impl sealed::Sealed for ProcedureContext<'_, '_> {}
49impl Context for ProcedureContext<'_, '_> {}