@@ -5,6 +5,7 @@ use crate::{cryptograpy, database_loader};
5
5
use crate :: otp:: otp_element:: OTPElement ;
6
6
use crate :: otp:: otp_maker:: make_totp;
7
7
use crate :: utils:: check_elements;
8
+ use crate :: print_settings:: PrintSettings ;
8
9
9
10
10
11
#[ derive( Serialize , Deserialize ) ]
@@ -33,17 +34,31 @@ pub fn read_codes() -> Result<Vec<OTPElement>,String>{
33
34
}
34
35
}
35
36
36
- pub fn show_codes ( elements : & Vec < OTPElement > ) {
37
+ pub fn show_codes ( elements : & Vec < OTPElement > ) -> usize {
38
+ let mut print_settings = PrintSettings :: new ( ) ;
37
39
let mut table = Table :: new ( ) ;
38
40
table. add_row ( row ! [ "Id" , "Issuer" , "Label" , "Code" ] ) ;
39
41
for i in 0 ..elements. len ( ) {
40
- add_element_to_table ( i, & mut table, & elements[ i] ) ;
42
+ add_element_to_table ( i, & mut table, & elements[ i] , & mut print_settings ) ;
41
43
}
42
44
table. printstd ( ) ;
45
+ print_settings. get_width ( )
43
46
}
44
47
45
- fn add_element_to_table ( i : usize , table : & mut Table , element : & OTPElement ) {
46
- table. add_row ( row ! [ i+1 , element. issuer( ) , element. label( ) , get_good_otp_code( & element) ] ) ;
48
+ fn add_element_to_table ( i : usize , table : & mut Table , element : & OTPElement , print_settings : & mut PrintSettings ) {
49
+ let index = ( i+1 ) . to_string ( ) ;
50
+ let issuer = element. issuer ( ) ;
51
+ let label = element. label ( ) ;
52
+ let code = get_good_otp_code ( & element) ;
53
+ table. add_row ( row ! [ index, issuer, label, code] ) ;
54
+
55
+ let mut temp_print = PrintSettings :: new ( ) ;
56
+ temp_print. set_max_id ( index. len ( ) ) ;
57
+ temp_print. set_max_issuer ( issuer. len ( ) ) ;
58
+ temp_print. set_max_label ( label. len ( ) ) ;
59
+ temp_print. set_max_code ( code. len ( ) ) ;
60
+
61
+ print_settings. check_other ( & temp_print) ;
47
62
}
48
63
49
64
fn get_good_otp_code ( element : & OTPElement ) -> String {
0 commit comments