Trait prodash::Progress[][src]

pub trait Progress: Send + 'static {
    type SubProgress: Progress;
Show 16 methods fn add_child(&mut self, name: impl Into<String>) -> Self::SubProgress;
fn init(&mut self, max: Option<Step>, unit: Option<Unit>);
fn set(&mut self, step: Step);
fn step(&self) -> Step;
fn inc_by(&mut self, step: Step);
fn set_name(&mut self, name: impl Into<String>);
fn name(&self) -> Option<String>;
fn message(&mut self, level: MessageLevel, message: impl Into<String>); fn unit(&self) -> Option<Unit> { ... }
fn max(&self) -> Option<Step> { ... }
fn inc(&mut self) { ... }
fn info(&mut self, message: impl Into<String>) { ... }
fn done(&mut self, message: impl Into<String>) { ... }
fn fail(&mut self, message: impl Into<String>) { ... }
fn show_throughput(&mut self, start: Instant) { ... }
fn show_throughput_with(&mut self, start: Instant, step: Step, unit: Unit) { ... }
}
Expand description

A trait for describing hierarchical process.

Associated Types

The type of progress returned by add_child().

Required methods

Adds a new child, whose parent is this instance, with the given name.

This will make the child progress to appear contained in the parent progress.

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.

Set the current progress to the given step. The cost of this call is negligible, making manual throttling not necessary.

Note: that this call has no effect unless init(…) was called before.

Returns the current step, as controlled by inc*(…) calls

Increment the current progress to the given step. The cost of this call is negligible, making manual throttling not necessary.

Set the name of the instance, altering the value given when crating it with add_child(…) The progress is allowed to discard it.

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’.

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

Returns the (cloned) unit associated with this Progress

Returns the maximum about of items we expect, as provided with the init(…) call

Increment the current progress to the given 1. The cost of this call is negligible, making manual throttling not necessary.

Create a message providing additional information about the progress thus far.

Create a message indicating the task is done successfully

Create a message indicating the task failed

A shorthand to print throughput information

A shorthand to print throughput information, with the given step and unit

Implementors