reifydb_core/interface/catalog/
subscription.rs1use std::sync::Arc;
5
6use crate::{interface::catalog::id::SubscriptionId, value::column::columns::Columns};
7
8pub const IMPLICIT_COLUMN_OP: &str = "_op";
9
10pub trait SubscriptionInspector: Send + Sync {
11 fn inspect(&self, id: SubscriptionId) -> Option<Columns>;
12
13 fn active_subscriptions(&self) -> Vec<SubscriptionId>;
14
15 fn column_count(&self, id: &SubscriptionId) -> Option<usize>;
16}
17
18pub type SubscriptionInspectorRef = Arc<dyn SubscriptionInspector>;
19
20#[derive(Debug, Clone, PartialEq, Eq)]
21pub struct HydrationConfig {
22 pub enabled: bool,
23 pub max_rows: Option<u64>,
24}
25
26impl Default for HydrationConfig {
27 fn default() -> Self {
28 Self {
29 enabled: true,
30 max_rows: None,
31 }
32 }
33}