11use parking_lot:: RwLock ;
2+ use std:: borrow:: Cow ;
23use std:: env;
34use std:: io:: IsTerminal as _;
45use std:: sync:: Arc ;
@@ -24,6 +25,7 @@ pub fn use_progress_bar() -> bool {
2425pub struct ProgressBar {
2526 inner : Option < Arc < indicatif:: ProgressBar > > ,
2627 start : Instant ,
28+ prefix : Option < String > ,
2729}
2830
2931impl ProgressBar {
@@ -49,13 +51,15 @@ impl ProgressBar {
4951 ProgressBar {
5052 inner : Some ( inner) ,
5153 start : Instant :: now ( ) ,
54+ prefix : None ,
5255 }
5356 }
5457
5558 fn no_progress_bar ( ) -> Self {
5659 ProgressBar {
5760 inner : None ,
5861 start : Instant :: now ( ) ,
62+ prefix : None ,
5963 }
6064 }
6165
@@ -71,7 +75,7 @@ impl ProgressBar {
7175 inner. finish_with_message ( & msg) ;
7276 logging:: set_progress_bar ( None ) ;
7377 } else {
74- log:: info!( "{msg}" ) ;
78+ log:: info!( "> {msg}" ) ;
7579 }
7680 }
7781
@@ -92,7 +96,14 @@ impl ProgressBar {
9296 if let Some ( inner) = & self . inner {
9397 inner. set_message ( msg. as_ref ( ) ) ;
9498 } else {
95- log:: debug!( "{}" , msg. as_ref( ) ) ;
99+ log:: debug!(
100+ "{}{}" ,
101+ self . prefix
102+ . as_deref( )
103+ . map( |s| format!( "{s} " ) )
104+ . unwrap_or_else( || String :: new( ) ) ,
105+ msg. as_ref( )
106+ ) ;
96107 }
97108 }
98109
@@ -102,9 +113,11 @@ impl ProgressBar {
102113 }
103114 }
104115
105- pub fn set_prefix < S : AsRef < str > > ( & self , prefix : S ) {
116+ pub fn set_prefix < S : AsRef < str > > ( & mut self , prefix : S ) {
106117 if let Some ( inner) = & self . inner {
107118 inner. set_prefix ( prefix. as_ref ( ) ) ;
119+ } else {
120+ self . prefix = Some ( prefix. as_ref ( ) . to_owned ( ) ) ;
108121 }
109122 }
110123
0 commit comments