reifydb_catalog/transaction/
mod.rs1use reifydb_core::interface::{
5 CommandTransaction, QueryTransaction, TransactionalChanges, interceptor::WithInterceptors,
6};
7
8mod flow;
9mod namespace;
10mod ring_buffer;
11mod source;
12mod table;
13mod view;
14
15pub trait MaterializedCatalogTransaction {
16 fn catalog(&self) -> &MaterializedCatalog;
17}
18
19pub trait CatalogCommandTransaction:
20 CatalogQueryTransaction
21 + CatalogNamespaceCommandOperations
22 + CatalogRingBufferCommandOperations
23 + CatalogTableCommandOperations
24 + CatalogViewCommandOperations
25{
26}
27
28pub trait CatalogTrackChangeOperations:
29 CatalogTrackNamespaceChangeOperations
30 + CatalogTrackRingBufferChangeOperations
31 + CatalogTrackTableChangeOperations
32 + CatalogTrackViewChangeOperations
33{
34}
35
36pub trait CatalogQueryTransaction:
37 CatalogFlowQueryOperations
38 + CatalogNamespaceQueryOperations
39 + CatalogRingBufferQueryOperations
40 + CatalogSourceQueryOperations
41 + CatalogTableQueryOperations
42 + CatalogViewQueryOperations
43{
44}
45
46impl<QT: QueryTransaction + MaterializedCatalogTransaction + TransactionalChanges> CatalogQueryTransaction for QT {}
47
48impl<
49 CT: CommandTransaction
50 + MaterializedCatalogTransaction
51 + CatalogTrackChangeOperations
52 + WithInterceptors<CT>
53 + TransactionalChanges,
54> CatalogCommandTransaction for CT
55{
56}
57
58pub use flow::CatalogFlowQueryOperations;
59pub use namespace::{
60 CatalogNamespaceCommandOperations, CatalogNamespaceQueryOperations, CatalogTrackNamespaceChangeOperations,
61};
62pub use ring_buffer::{
63 CatalogRingBufferCommandOperations, CatalogRingBufferQueryOperations, CatalogTrackRingBufferChangeOperations,
64};
65pub use source::CatalogSourceQueryOperations;
66pub use table::{CatalogTableCommandOperations, CatalogTableQueryOperations, CatalogTrackTableChangeOperations};
67pub use view::{CatalogTrackViewChangeOperations, CatalogViewCommandOperations, CatalogViewQueryOperations};
68
69use crate::MaterializedCatalog;