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