(mut self, message: &str)
| 101 | } |
| 102 | |
| 103 | pub(crate) fn done(mut self, message: &str) { |
| 104 | self.stop(); |
| 105 | let mut stderr = std::io::stderr(); |
| 106 | if self.interactive { |
| 107 | // Show cursor again, then print the done line. |
| 108 | let _ = write!(stderr, "\x1b[?25h"); |
| 109 | let _ = writeln!(stderr, "\r\x1b[2K\x1b[32m✔\x1b[0m {}", message); |
| 110 | } else { |
| 111 | let _ = writeln!(stderr, "{message}"); |
| 112 | } |
| 113 | let _ = stderr.flush(); |
| 114 | } |
| 115 | |
| 116 | fn stop(&mut self) { |
| 117 | self.stop.store(true, std::sync::atomic::Ordering::Relaxed); |
no test coverage detected