Trait dsi_progress_logger::ProgressLog
source · pub trait ProgressLog {
Show 18 methods
// Required methods
fn display_memory(&mut self, display_memory: bool) -> &mut Self;
fn item_name(&mut self, item_name: impl AsRef<str>) -> &mut Self;
fn log_interval(&mut self, log_interval: Duration) -> &mut Self;
fn expected_updates(&mut self, expected_updates: Option<usize>) -> &mut Self;
fn time_unit(&mut self, time_unit: Option<TimeUnit>) -> &mut Self;
fn local_speed(&mut self, local_speed: bool) -> &mut Self;
fn start(&mut self, msg: impl AsRef<str>);
fn update(&mut self);
fn update_with_count(&mut self, count: usize);
fn light_update(&mut self);
fn update_and_display(&mut self);
fn stop(&mut self);
fn done(&mut self);
fn done_with_count(&mut self, count: usize);
fn elapsed(&self) -> Option<Duration>;
fn refresh(&mut self);
fn info(&self, args: Arguments<'_>);
fn clone(&self) -> Self;
}
Expand description
Logging trait.
Implemented by ProgressLog
and by Option<ProgressLog>
. This approach makes it possible to
pass as a ProgressLog
either a ProgressLogger
, an Option<ProgressLogger>
, or even
Option::<ProgressLogger>::None
.
Required Methods§
sourcefn display_memory(&mut self, display_memory: bool) -> &mut Self
fn display_memory(&mut self, display_memory: bool) -> &mut Self
Display memory information.
sourcefn log_interval(&mut self, log_interval: Duration) -> &mut Self
fn log_interval(&mut self, log_interval: Duration) -> &mut Self
Set the log interval.
sourcefn expected_updates(&mut self, expected_updates: Option<usize>) -> &mut Self
fn expected_updates(&mut self, expected_updates: Option<usize>) -> &mut Self
Set the expected number of updates.
If not None
,
the logger will display the percentage of completion and
an estimate of the time to completion.
sourcefn time_unit(&mut self, time_unit: Option<TimeUnit>) -> &mut Self
fn time_unit(&mut self, time_unit: Option<TimeUnit>) -> &mut Self
Set the time unit to use for speed.
If not None
, the logger will always display the speed in this unit
instead of making a choice of readable unit based on the elapsed time. Moreover, large numbers
will not be thousands separated. This behavior is useful when the output of the logger must be parsed.
sourcefn local_speed(&mut self, local_speed: bool) -> &mut Self
fn local_speed(&mut self, local_speed: bool) -> &mut Self
Set whether to display additionally the speed achieved during the last log interval.
sourcefn start(&mut self, msg: impl AsRef<str>)
fn start(&mut self, msg: impl AsRef<str>)
Start the logger, displaying the given message.
You can pass the empty string to display nothing.
sourcefn update_with_count(&mut self, count: usize)
fn update_with_count(&mut self, count: usize)
Set the count and check whether it is time to log.
sourcefn light_update(&mut self)
fn light_update(&mut self)
Increase the count but check whether it is time log only after an implementation-defined number of calls.
Useful for very short activities with respect to which checking the time is expensive.
sourcefn update_and_display(&mut self)
fn update_and_display(&mut self)
Increase the count and force a log.
sourcefn done(&mut self)
fn done(&mut self)
Stop the logger, print Completed.
, and display the final stats.
The number of expected updates will be cleared.
sourcefn done_with_count(&mut self, count: usize)
fn done_with_count(&mut self, count: usize)
Stop the logger, set the count, print Completed.
, and display the final stats.
The number of expected updates will be cleared.
This method is particularly useful in two circumstances:
- you have updated the logger with some approximate values (e.g., in a multicore computation) but before printing the final stats you want the internal counter to contain an exact value;
- you have used the logger as a handy timer, calling just
start
and this method.
sourcefn elapsed(&self) -> Option<Duration>
fn elapsed(&self) -> Option<Duration>
Return the elapsed time since the logger was started, or None
if the logger has not been started.
sourcefn refresh(&mut self)
fn refresh(&mut self)
Refresh memory information, if previously requested with display_memory
.
You do not need to call this method unless you display the logger manually.
sourcefn info(&self, args: Arguments<'_>)
fn info(&self, args: Arguments<'_>)
Output the given message.
For maximum flexibility, this method takes as argument the result of a std::format_args!
macro.
Note that there will be no output if the logger is the None
variant.
Object Safety§
Implementations on Foreign Types§
source§impl<P: ProgressLog> ProgressLog for Option<P>
impl<P: ProgressLog> ProgressLog for Option<P>
source§fn local_speed(&mut self, local_speed: bool) -> &mut Self
fn local_speed(&mut self, local_speed: bool) -> &mut Self
Set whether to display additionally the speed achieved during the last log interval.