reinhardt_query/types/
comment.rs1use crate::types::DynIden;
8
9#[derive(Debug, Clone)]
27#[allow(dead_code)]
29pub enum CommentTarget {
30 Table(DynIden),
32 Column(DynIden, DynIden),
34 Index(DynIden),
36 View(DynIden),
38 MaterializedView(DynIden),
40 Sequence(DynIden),
42 Schema(DynIden),
44 Database(DynIden),
46 Function(DynIden),
48 Trigger(DynIden, DynIden),
50 Type(DynIden),
52}
53
54#[cfg(test)]
55mod tests {
56 use super::*;
57 use crate::types::IntoIden;
58 use rstest::*;
59
60 #[rstest]
61 fn test_comment_target_table() {
62 let target = CommentTarget::Table("users".into_iden());
63 match target {
64 CommentTarget::Table(table) => {
65 assert_eq!(table.to_string(), "users");
66 }
67 _ => panic!("Expected CommentTarget::Table"),
68 }
69 }
70
71 #[rstest]
72 fn test_comment_target_column() {
73 let target = CommentTarget::Column("users".into_iden(), "email".into_iden());
74 match target {
75 CommentTarget::Column(table, column) => {
76 assert_eq!(table.to_string(), "users");
77 assert_eq!(column.to_string(), "email");
78 }
79 _ => panic!("Expected CommentTarget::Column"),
80 }
81 }
82
83 #[rstest]
84 fn test_comment_target_index() {
85 let target = CommentTarget::Index("idx_users_email".into_iden());
86 match target {
87 CommentTarget::Index(index) => {
88 assert_eq!(index.to_string(), "idx_users_email");
89 }
90 _ => panic!("Expected CommentTarget::Index"),
91 }
92 }
93
94 #[rstest]
95 fn test_comment_target_view() {
96 let target = CommentTarget::View("active_users".into_iden());
97 match target {
98 CommentTarget::View(view) => {
99 assert_eq!(view.to_string(), "active_users");
100 }
101 _ => panic!("Expected CommentTarget::View"),
102 }
103 }
104
105 #[rstest]
106 fn test_comment_target_materialized_view() {
107 let target = CommentTarget::MaterializedView("user_stats".into_iden());
108 match target {
109 CommentTarget::MaterializedView(view) => {
110 assert_eq!(view.to_string(), "user_stats");
111 }
112 _ => panic!("Expected CommentTarget::MaterializedView"),
113 }
114 }
115
116 #[rstest]
117 fn test_comment_target_sequence() {
118 let target = CommentTarget::Sequence("user_id_seq".into_iden());
119 match target {
120 CommentTarget::Sequence(seq) => {
121 assert_eq!(seq.to_string(), "user_id_seq");
122 }
123 _ => panic!("Expected CommentTarget::Sequence"),
124 }
125 }
126
127 #[rstest]
128 fn test_comment_target_schema() {
129 let target = CommentTarget::Schema("public".into_iden());
130 match target {
131 CommentTarget::Schema(schema) => {
132 assert_eq!(schema.to_string(), "public");
133 }
134 _ => panic!("Expected CommentTarget::Schema"),
135 }
136 }
137
138 #[rstest]
139 fn test_comment_target_database() {
140 let target = CommentTarget::Database("mydb".into_iden());
141 match target {
142 CommentTarget::Database(db) => {
143 assert_eq!(db.to_string(), "mydb");
144 }
145 _ => panic!("Expected CommentTarget::Database"),
146 }
147 }
148
149 #[rstest]
150 fn test_comment_target_function() {
151 let target = CommentTarget::Function("calculate_total".into_iden());
152 match target {
153 CommentTarget::Function(func) => {
154 assert_eq!(func.to_string(), "calculate_total");
155 }
156 _ => panic!("Expected CommentTarget::Function"),
157 }
158 }
159
160 #[rstest]
161 fn test_comment_target_trigger() {
162 let target = CommentTarget::Trigger("update_timestamp".into_iden(), "users".into_iden());
163 match target {
164 CommentTarget::Trigger(trigger, table) => {
165 assert_eq!(trigger.to_string(), "update_timestamp");
166 assert_eq!(table.to_string(), "users");
167 }
168 _ => panic!("Expected CommentTarget::Trigger"),
169 }
170 }
171
172 #[rstest]
173 fn test_comment_target_type() {
174 let target = CommentTarget::Type("user_status".into_iden());
175 match target {
176 CommentTarget::Type(typ) => {
177 assert_eq!(typ.to_string(), "user_status");
178 }
179 _ => panic!("Expected CommentTarget::Type"),
180 }
181 }
182}