vortex_array/expr/functions/
session.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use vortex_session::Ref;
5use vortex_session::SessionExt;
6use vortex_session::registry::Registry;
7
8use crate::expr::functions::scalar::ScalarFn;
9
10#[derive(Default, Clone, Debug)]
11pub struct FunctionSession {
12    registry: Registry<ScalarFn>,
13}
14
15impl FunctionSession {
16    pub fn registry(&self) -> &Registry<ScalarFn> {
17        &self.registry
18    }
19}
20
21pub trait ScalarFuncSessionExt: SessionExt {
22    fn functions(&self) -> Ref<'_, FunctionSession> {
23        self.get::<FunctionSession>()
24    }
25}
26impl<S: SessionExt> ScalarFuncSessionExt for S {}