@@ -2,76 +2,147 @@ pub mod get
2
2
{
3
3
// PACKAGES
4
4
use std:: fs:: File ;
5
- use std:: io:: { self , prelude:: * , BufReader } ;
5
+ use std:: io:: { prelude:: * , BufReader } ;
6
6
7
7
8
- const storagePATH : & str = "rustix/storage.txt" ;
8
+ const STORAGE_PATH : & str = "rustix/storage.txt" ;
9
9
10
10
11
11
pub fn start ( ) -> std:: io:: Result < Vec < [ String ; 4 ] > >
12
12
{
13
13
fn get_saves ( x : String ) -> [ String ; 4 ]
14
14
{
15
- let mut elemStartPoint : i64 = 0 ;
16
- let mut SAVE_INFO : [ String ; 4 ] = [ "" . to_string ( ) , "" . to_string ( ) , "" . to_string ( ) , "" . to_string ( ) ] ;
15
+ let mut elem_start_point : i64 = 0 ;
16
+ let mut save_info : [ String ; 4 ] = [ "" . to_string ( ) , "" . to_string ( ) , "" . to_string ( ) , "" . to_string ( ) ] ;
17
17
18
18
for i in x. chars ( )
19
19
{
20
- if ( i == '|' ) { elemStartPoint += 1 ; }
21
- if ( elemStartPoint == 1 ) { SAVE_INFO [ 0 ] . push ( i) ; }
22
- if ( elemStartPoint == 2 ) { SAVE_INFO [ 1 ] . push ( i) ; }
23
- if ( elemStartPoint == 3 ) { SAVE_INFO [ 2 ] . push ( i) ; }
24
- if ( elemStartPoint == 4 ) { SAVE_INFO [ 3 ] . push ( i) ; }
20
+ if i == '|' { elem_start_point += 1 ; }
21
+ if elem_start_point == 1 { save_info [ 0 ] . push ( i) ; }
22
+ if elem_start_point == 2 { save_info [ 1 ] . push ( i) ; }
23
+ if elem_start_point == 3 { save_info [ 2 ] . push ( i) ; }
24
+ if elem_start_point == 4 { save_info [ 3 ] . push ( i) ; }
25
25
}
26
- for i in SAVE_INFO . iter_mut ( ) { i. remove ( 0 ) ; }
26
+ for i in save_info . iter_mut ( ) { i. remove ( 0 ) ; }
27
27
28
- return SAVE_INFO ;
28
+ return save_info ;
29
29
}
30
30
31
- let file = File :: open ( storagePATH ) ?;
31
+ let file = File :: open ( STORAGE_PATH ) ?;
32
32
let reader = BufReader :: new ( file) ;
33
- let mut SAVES_BASE = Vec :: new ( ) ;
33
+ let mut saves_base = Vec :: new ( ) ;
34
34
35
- for line in reader. lines ( ) { SAVES_BASE . push ( get_saves ( line?) ) ; }
35
+ for line in reader. lines ( ) { saves_base . push ( get_saves ( line?) ) ; }
36
36
37
- Ok ( SAVES_BASE )
37
+ Ok ( saves_base )
38
38
}
39
39
}
40
40
41
+
41
42
pub mod add
42
43
{
43
44
// PACKAGES
44
45
use std:: path:: Path ;
45
- use std:: fs:: File ;
46
- use std:: io:: { self , prelude:: * , BufReader } ;
47
-
48
46
use std:: io:: prelude:: * ;
49
47
use std:: fs:: OpenOptions ;
50
48
51
49
52
- const storagePATH : & str = "rustix/storage.txt" ;
50
+ const STORAGE_PATH : & str = "rustix/storage.txt" ;
53
51
54
52
55
53
fn write_file ( save_info : [ String ; 4 ] ) -> bool
56
54
{
57
- let SAVES_BASE = crate :: database:: get:: start ( ) . unwrap ( ) ;
58
- let mut UNIQUE_SAVE : bool = true ;
55
+ let saves_base = crate :: database:: get:: start ( ) . unwrap ( ) ;
56
+ let mut unique_save : bool = true ;
59
57
60
- for i in SAVES_BASE { if ( i[ 1 ] == save_info[ 1 ] ) { UNIQUE_SAVE = false ; } }
58
+ for i in saves_base { if i[ 1 ] == save_info[ 1 ] { unique_save = false ; } }
61
59
62
- if ( UNIQUE_SAVE == true ) {
60
+ if unique_save == true {
63
61
let res = format ! ( "|{}|{}|{}|{}|" , save_info[ 0 ] , save_info[ 1 ] , save_info[ 2 ] , save_info[ 3 ] ) ;
64
- let mut file = OpenOptions :: new ( ) . write ( true ) . append ( true ) . open ( storagePATH ) . unwrap ( ) ;
62
+ let mut file = OpenOptions :: new ( ) . write ( true ) . append ( true ) . open ( STORAGE_PATH ) . unwrap ( ) ;
65
63
writeln ! ( file, "{}" , res) ;
66
64
67
65
println ! ( "Added !" ) ;
68
66
} else { println ! ( "Such a name already exists !" ) ; }
69
67
70
- return UNIQUE_SAVE ;
68
+ return unique_save ;
71
69
}
72
70
73
71
74
72
// START POINT
75
73
pub fn start ( save_info : [ String ; 4 ] ) -> bool
76
- { if ( Path :: new ( storagePATH) . exists ( ) == true ) { return write_file ( save_info) ; } else { return false ; } }
74
+ { if Path :: new ( STORAGE_PATH ) . exists ( ) == true { return write_file ( save_info) ; } else { return false ; } }
75
+ }
76
+
77
+
78
+ pub mod del
79
+ {
80
+ // PACKAGES
81
+ use std:: fs;
82
+ use std:: io:: prelude:: * ;
83
+ use std:: fs:: OpenOptions ;
84
+
85
+
86
+ const STORAGE_PATH : & str = "rustix/storage.txt" ;
87
+
88
+
89
+ fn checking ( mut base : Vec < [ String ; 4 ] > , save_name : String )
90
+ {
91
+ let mut exist_save : bool = false ;
92
+ let mut save_id : usize = 0 ;
93
+
94
+ for ( i, el) in base. iter ( ) . enumerate ( ) {
95
+ if el[ 1 ] == save_name { exist_save = true ; save_id = i; break ; }
96
+ }
97
+
98
+ if exist_save == true
99
+ {
100
+ base. remove ( save_id) ;
101
+
102
+ { // BLOCK FOR DELETE SAVE FILE
103
+ let save_path = format ! ( "rustix/saves/{:02}.txt" , save_name) ;
104
+
105
+ match fs:: remove_file ( save_path) {
106
+ Err ( error) => println ! ( "{:?}" , error. kind( ) ) ,
107
+ Ok ( _) => println ! ( "The save was successfully deleted !" ) ,
108
+ }
109
+ }
110
+
111
+ // CODE FOR MAKE STORAGE.TXT EMPTY
112
+ OpenOptions :: new ( ) . write ( true ) . truncate ( true ) . open ( STORAGE_PATH ) ;
113
+
114
+ { // BLOCK FOR ADD NEW INFO ABOUT SAVES IN STORAGE.TXT
115
+ let mut file = OpenOptions :: new ( ) . write ( true ) . append ( false ) . open ( STORAGE_PATH ) . unwrap ( ) ;
116
+
117
+ for i in base {
118
+ let res = format ! ( "|{}|{}|{}|{}|" , i[ 0 ] , i[ 1 ] , i[ 2 ] , i[ 3 ] ) ;
119
+ writeln ! ( file, "{}" , res) ;
120
+ }
121
+ }
122
+ } else { println ! ( "some error" ) ; }
123
+ }
124
+
125
+
126
+ // START POINT
127
+ pub fn start ( save_name : String )
128
+ { checking ( crate :: database:: get:: start ( ) . unwrap ( ) , save_name) ; }
129
+ }
130
+
131
+
132
+ pub mod slc
133
+ {
134
+ pub fn start ( save_name : & String ) -> ( bool , String )
135
+ {
136
+ let saves_base = crate :: database:: get:: start ( ) . unwrap ( ) ;
137
+ let mut save_info : ( bool , String ) = ( false , "" . to_string ( ) ) ;
138
+
139
+ for i in saves_base {
140
+ if i[ 1 ] == * save_name {
141
+ save_info. 0 = true ;
142
+ save_info. 1 = i[ 0 ] . to_string ( ) ;
143
+ }
144
+ }
145
+
146
+ return save_info;
147
+ }
77
148
}
0 commit comments