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 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;