reifydb_catalog/transaction/
mod.rs

1// Copyright (c) reifydb.com 2025
2// This file is licensed under the AGPL-3.0-or-later, see license.md file
3
4use reifydb_core::interface::{
5	CommandTransaction, QueryTransaction, TransactionalChanges, interceptor::WithInterceptors,
6};
7
8mod dictionary;
9mod flow;
10mod namespace;
11mod ring_buffer;
12mod source;
13mod table;
14mod view;
15
16pub trait MaterializedCatalogTransaction {
17	fn catalog(&self) -> &MaterializedCatalog;
18}
19
20pub trait CatalogCommandTransaction:
21	CatalogQueryTransaction
22	+ CatalogDictionaryCommandOperations
23	+ CatalogNamespaceCommandOperations
24	+ CatalogRingBufferCommandOperations
25	+ CatalogTableCommandOperations
26	+ CatalogViewCommandOperations
27{
28}
29
30pub trait CatalogTrackChangeOperations:
31	CatalogTrackDictionaryChangeOperations
32	+ CatalogTrackNamespaceChangeOperations
33	+ CatalogTrackRingBufferChangeOperations
34	+ CatalogTrackTableChangeOperations
35	+ CatalogTrackViewChangeOperations
36{
37}
38
39pub trait CatalogQueryTransaction:
40	CatalogDictionaryQueryOperations
41	+ CatalogFlowQueryOperations
42	+ CatalogNamespaceQueryOperations
43	+ CatalogRingBufferQueryOperations
44	+ CatalogSourceQueryOperations
45	+ CatalogTableQueryOperations
46	+ CatalogViewQueryOperations
47{
48}
49
50impl<QT: QueryTransaction + MaterializedCatalogTransaction + TransactionalChanges> CatalogQueryTransaction for QT {}
51
52impl<
53	CT: CommandTransaction
54		+ MaterializedCatalogTransaction
55		+ CatalogTrackChangeOperations
56		+ WithInterceptors<CT>
57		+ TransactionalChanges,
58> CatalogCommandTransaction for CT
59{
60}
61
62pub use dictionary::{
63	CatalogDictionaryCommandOperations, CatalogDictionaryQueryOperations, CatalogTrackDictionaryChangeOperations,
64};
65pub use flow::CatalogFlowQueryOperations;
66pub use namespace::{
67	CatalogNamespaceCommandOperations, CatalogNamespaceQueryOperations, CatalogTrackNamespaceChangeOperations,
68};
69pub use ring_buffer::{
70	CatalogRingBufferCommandOperations, CatalogRingBufferQueryOperations, CatalogTrackRingBufferChangeOperations,
71};
72pub use source::CatalogSourceQueryOperations;
73pub use table::{CatalogTableCommandOperations, CatalogTableQueryOperations, CatalogTrackTableChangeOperations};
74pub use view::{CatalogTrackViewChangeOperations, CatalogViewCommandOperations, CatalogViewQueryOperations};
75
76use crate::MaterializedCatalog;