15
15
* You should have received a copy of the GNU General Public License
16
16
* along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
*/
18
+
18
19
use rapid_naive_sql:: RNSQL ;
19
-
20
+ use rapid_naive_sql:: data:: databases:: database:: Database ;
21
+ use rapid_naive_sql:: data:: databases:: tables:: table:: Table ;
22
+ use rapid_naive_sql:: data:: databases:: tables:: rows:: row:: Row ;
23
+
20
24
fn main ( ) {
25
+ const DB_NAME : & str = "db1" ;
26
+ const TB_NAME : & str = "tb1" ;
27
+ const RW_NAME : u32 = 1 ;
28
+ const CL_NAME : & str = "cl1" ;
29
+
21
30
let mut project = RNSQL :: new ( ) ;
22
31
23
32
println ! ( "{:#?}\n \n " , project) ;
24
33
25
- project. add_database ( String :: from ( "db1" ) ) ;
34
+ let db1 = Database :: create_database ( ) ;
35
+ project. add_database ( DB_NAME , db1) ;
26
36
27
37
println ! ( "{:#?}\n \n " , project) ;
28
38
29
- project. databases [ 0 ] . add_table ( String :: from ( "tb1" ) ) ;
39
+ if let Some ( database) = project. databases . get_mut ( DB_NAME ) {
40
+ let tb1 = Table :: create_table ( ) ;
41
+ database. add_table ( TB_NAME , tb1) ;
42
+ }
30
43
31
44
println ! ( "{:#?}\n \n " , project) ;
32
45
33
- project. databases [ 0 ] . tables [ 0 ] . add_row ( 1 ) ;
46
+ if let Some ( database) = project. databases . get_mut ( DB_NAME ) {
47
+ if let Some ( table) = database. tables . get_mut ( TB_NAME ) {
48
+ let rw1 = Row :: create_row ( ) ;
49
+ table. add_row ( RW_NAME , rw1) ;
50
+ }
51
+ }
34
52
35
53
println ! ( "{:#?}\n \n " , project) ;
36
54
37
- project. databases [ 0 ] . tables [ 0 ] . rows [ 0 ] . create_column ( String :: from ( "name" ) ) ;
55
+ if let Some ( database) = project. databases . get_mut ( DB_NAME ) {
56
+ if let Some ( table) = database. tables . get_mut ( TB_NAME ) {
57
+ if let Some ( row) = table. rows . get_mut ( & RW_NAME ) {
58
+ row. create_column ( CL_NAME , String :: from ( "hello" ) ) ;
59
+ }
60
+ }
61
+ }
38
62
39
63
println ! ( "{:#?}\n \n " , project) ;
40
64
41
- project. databases [ 0 ] . tables [ 0 ] . rows [ 0 ] . delete_column ( String :: from ( "name" ) ) ;
65
+ if let Some ( database) = project. databases . get_mut ( DB_NAME ) {
66
+ if let Some ( table) = database. tables . get_mut ( TB_NAME ) {
67
+ if let Some ( row) = table. rows . get_mut ( & RW_NAME ) {
68
+ row. delete_column ( CL_NAME ) ;
69
+ }
70
+ }
71
+ }
42
72
43
73
println ! ( "{:#?}\n \n " , project) ;
44
74
45
- project. databases [ 0 ] . tables [ 0 ] . delete_row ( 1 ) ;
75
+ if let Some ( database) = project. databases . get_mut ( DB_NAME ) {
76
+ if let Some ( table) = database. tables . get_mut ( TB_NAME ) {
77
+ table. delete_row ( RW_NAME ) ;
78
+ }
79
+ }
46
80
47
81
println ! ( "{:#?}\n \n " , project) ;
48
82
49
- project. databases [ 0 ] . delete_table ( String :: from ( "tb1" ) ) ;
83
+ if let Some ( database) = project. databases . get_mut ( DB_NAME ) {
84
+ database. delete_table ( TB_NAME ) ;
85
+ }
50
86
51
87
println ! ( "{:#?}\n \n " , project) ;
52
88
53
- project. delete_database ( String :: from ( "db1" ) ) ;
89
+ project. delete_database ( DB_NAME ) ;
54
90
55
91
println ! ( "{:#?}" , project) ;
56
92
}
0 commit comments