pub trait Progress:
Count
+ Send
+ Sync {
Show 13 methods
// Required methods
fn init(&mut self, max: Option<usize>, unit: Option<Unit>);
fn set_name(&mut self, name: String);
fn name(&self) -> Option<String>;
fn id(&self) -> [u8; 4];
fn message(&self, level: MessageLevel, message: String);
// Provided methods
fn unit(&self) -> Option<Unit> { ... }
fn max(&self) -> Option<usize> { ... }
fn set_max(&mut self, _max: Option<usize>) -> Option<usize> { ... }
fn info(&self, message: String) { ... }
fn done(&self, message: String) { ... }
fn fail(&self, message: String) { ... }
fn show_throughput(&self, start: Instant) { ... }
fn show_throughput_with(
&self,
start: Instant,
step: usize,
unit: Unit,
level: MessageLevel,
) { ... }
}
Expand description
A trait for describing non-hierarchical progress.
It differs by not being able to add child progress dynamically, but in turn is object safe. It’s recommended to use this trait whenever there is no need to add child progress, at the leaf of a computation.
Required Methods§
sourcefn init(&mut self, max: Option<usize>, unit: Option<Unit>)
fn init(&mut self, max: Option<usize>, unit: Option<Unit>)
Initialize the Item for receiving progress information.
If max
is Some(…)
, it will be treated as upper bound. When progress is set(…)
it should not exceed the given maximum.
If max
is None
, the progress is unbounded. Use this if the amount of work cannot accurately
be determined in advance.
If unit
is Some(…)
, it is used for display purposes only. See prodash::Unit
for more information.
If both unit
and max
are None
, the item will be reset to be equivalent to ‘uninitialized’.
If this method is never called, this Progress
instance will serve as organizational unit, useful to add more structure
to the progress tree (e.g. a headline).
Note that this method can be called multiple times, changing the bounded-ness and unit at will.
sourcefn set_name(&mut self, name: String)
fn set_name(&mut self, name: String)
Set the name of the instance, altering the value given when crating it with add_child(…)
The progress is allowed to discard it.
sourcefn name(&self) -> Option<String>
fn name(&self) -> Option<String>
Get the name of the instance as given when creating it with add_child(…)
The progress is allowed to not be named, thus there is no guarantee that a previously set names ‘sticks’.
sourcefn id(&self) -> [u8; 4]
fn id(&self) -> [u8; 4]
Get a stable identifier for the progress instance. Note that it could be unknown.
sourcefn message(&self, level: MessageLevel, message: String)
fn message(&self, level: MessageLevel, message: String)
Create a message
of the given level
and store it with the progress tree.
Use this to provide additional,human-readable information about the progress made, including indicating success or failure.
Provided Methods§
sourcefn max(&self) -> Option<usize>
fn max(&self) -> Option<usize>
Returns the maximum about of items we expect, as provided with the init(…)
call
sourcefn set_max(&mut self, _max: Option<usize>) -> Option<usize>
fn set_max(&mut self, _max: Option<usize>) -> Option<usize>
Set the maximum value to max
and return the old maximum value.
sourcefn info(&self, message: String)
fn info(&self, message: String)
Create a message providing additional information about the progress thus far.
sourcefn show_throughput(&self, start: Instant)
fn show_throughput(&self, start: Instant)
A shorthand to print throughput information
sourcefn show_throughput_with(
&self,
start: Instant,
step: usize,
unit: Unit,
level: MessageLevel,
)
fn show_throughput_with( &self, start: Instant, step: usize, unit: Unit, level: MessageLevel, )
A shorthand to print throughput information, with the given step and unit, and message level.
Trait Implementations§
source§impl Count for Box<dyn Progress>
impl Count for Box<dyn Progress>
source§fn set(&self, step: usize)
fn set(&self, step: usize)
step
. The cost of this call is negligible,
making manual throttling not necessary. Read moresource§fn inc_by(&self, step: usize)
fn inc_by(&self, step: usize)
step
.
The cost of this call is negligible, making manual throttling not necessary.source§impl Progress for Box<dyn Progress>
impl Progress for Box<dyn Progress>
source§fn init(&mut self, max: Option<usize>, unit: Option<Unit>)
fn init(&mut self, max: Option<usize>, unit: Option<Unit>)
source§fn max(&self) -> Option<usize>
fn max(&self) -> Option<usize>
init(…)
callsource§fn set_max(&mut self, max: Option<usize>) -> Option<usize>
fn set_max(&mut self, max: Option<usize>) -> Option<usize>
max
and return the old maximum value.source§fn set_name(&mut self, name: String)
fn set_name(&mut self, name: String)
add_child(…)
The progress is allowed to discard it.source§fn name(&self) -> Option<String>
fn name(&self) -> Option<String>
add_child(…)
The progress is allowed to not be named, thus there is no guarantee that a previously set names ‘sticks’.