reifydb_core/interceptor/
table_def.rs1use std::marker::PhantomData;
5
6use crate::{define_api_function, define_closure_interceptor, define_interceptor, interface::TableDef};
7
8define_interceptor!(
10 context: TableDefPostCreateContext<T>,
11 trait: TableDefPostCreateInterceptor,
12 fields: {
13 txn: &'a mut T,
14 post: &'a TableDef}
15);
16
17define_closure_interceptor!(
18 ClosureTableDefPostCreateInterceptor,
19 TableDefPostCreateInterceptor,
20 TableDefPostCreateContext,
21 with_transaction
22);
23
24define_api_function!(
25 table_def_post_create,
26 ClosureTableDefPostCreateInterceptor<T, F>,
27 TableDefPostCreateContext<T>
28);
29
30define_interceptor!(
32 context: TableDefPreUpdateContext<T>,
33 trait: TableDefPreUpdateInterceptor,
34 fields: {
35 txn: &'a mut T,
36 pre: &'a TableDef}
37);
38
39define_closure_interceptor!(
40 ClosureTableDefPreUpdateInterceptor,
41 TableDefPreUpdateInterceptor,
42 TableDefPreUpdateContext,
43 with_transaction
44);
45
46define_api_function!(
47 table_def_pre_update,
48 ClosureTableDefPreUpdateInterceptor<T, F>,
49 TableDefPreUpdateContext<T>
50);
51
52define_interceptor!(
54 context: TableDefPostUpdateContext<T>,
55 trait: TableDefPostUpdateInterceptor,
56 fields: {
57 txn: &'a mut T,
58 pre: &'a TableDef,
59 post: &'a TableDef}
60);
61
62define_closure_interceptor!(
63 ClosureTableDefPostUpdateInterceptor,
64 TableDefPostUpdateInterceptor,
65 TableDefPostUpdateContext,
66 with_transaction
67);
68
69define_api_function!(
70 table_def_post_update,
71 ClosureTableDefPostUpdateInterceptor<T, F>,
72 TableDefPostUpdateContext<T>
73);
74
75define_interceptor!(
77 context: TableDefPreDeleteContext<T>,
78 trait: TableDefPreDeleteInterceptor,
79 fields: {
80 txn: &'a mut T,
81 pre: &'a TableDef}
82);
83
84define_closure_interceptor!(
85 ClosureTableDefPreDeleteInterceptor,
86 TableDefPreDeleteInterceptor,
87 TableDefPreDeleteContext,
88 with_transaction
89);
90
91define_api_function!(
92 table_def_pre_delete,
93 ClosureTableDefPreDeleteInterceptor<T, F>,
94 TableDefPreDeleteContext<T>
95);
96
97use crate::impl_register_interceptor;
98
99impl_register_interceptor!(
100 ClosureTableDefPostCreateInterceptor<T, F>,
101 TableDefPostCreateContext<T>,
102 TableDefPostCreateInterceptor,
103 table_def_post_create
104);
105
106impl_register_interceptor!(
107 ClosureTableDefPreUpdateInterceptor<T, F>,
108 TableDefPreUpdateContext<T>,
109 TableDefPreUpdateInterceptor,
110 table_def_pre_update
111);
112
113impl_register_interceptor!(
114 ClosureTableDefPostUpdateInterceptor<T, F>,
115 TableDefPostUpdateContext<T>,
116 TableDefPostUpdateInterceptor,
117 table_def_post_update
118);
119
120impl_register_interceptor!(
121 ClosureTableDefPreDeleteInterceptor<T, F>,
122 TableDefPreDeleteContext<T>,
123 TableDefPreDeleteInterceptor,
124 table_def_pre_delete
125);