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