@@ -5,6 +5,7 @@ use crate::{cryptograpy, database_loader};
55use crate :: otp:: otp_element:: OTPElement ;
66use crate :: otp:: otp_maker:: make_totp;
77use crate :: utils:: check_elements;
8+ use crate :: print_settings:: PrintSettings ;
89
910
1011#[ derive( Serialize , Deserialize ) ]
@@ -33,17 +34,31 @@ pub fn read_codes() -> Result<Vec<OTPElement>,String>{
3334 }
3435}
3536
36- pub fn show_codes ( elements : & Vec < OTPElement > ) {
37+ pub fn show_codes ( elements : & Vec < OTPElement > ) -> usize {
38+ let mut print_settings = PrintSettings :: new ( ) ;
3739 let mut table = Table :: new ( ) ;
3840 table. add_row ( row ! [ "Id" , "Issuer" , "Label" , "Code" ] ) ;
3941 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 ) ;
4143 }
4244 table. printstd ( ) ;
45+ print_settings. get_width ( )
4346}
4447
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) ;
4762}
4863
4964fn get_good_otp_code ( element : & OTPElement ) -> String {
0 commit comments