[][src]Trait prodash::Progress

pub trait Progress {
    type SubProgress: Progress;
    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 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) { ... } }

Associated Types

Loading content...

Required methods

fn add_child(&mut self, name: impl Into<String>) -> Self::SubProgress

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.

fn init(&mut self, max: Option<Step>, 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 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.

fn set(&mut self, step: Step)

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.

fn step(&self) -> Step

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

fn inc_by(&mut self, step: Step)

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

fn message(&mut self, level: MessageLevel, message: impl Into<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.

Loading content...

Provided methods

fn unit(&self) -> Option<Unit>

Returns the (cloned) unit associated with this Progress

fn max(&self) -> Option<Step>

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

fn inc(&mut self)

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

fn info(&mut self, message: impl Into<String>)

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

fn done(&mut self, message: impl Into<String>)

Create a message indicating the task is done successfully

fn fail(&mut self, message: impl Into<String>)

Create a message indicating the task failed

fn show_throughput(&mut self, start: Instant)

A shorthand to print throughput information

fn show_throughput_with(&mut self, start: Instant, step: Step, unit: Unit)

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

Loading content...

Implementors

impl Progress for Discard[src]

type SubProgress = Discard

impl Progress for Log[src]

type SubProgress = Log

impl Progress for Item[src]

type SubProgress = Item

impl<L, R> Progress for Either<L, R> where
    L: Progress,
    R: Progress
[src]

type SubProgress = Either<L::SubProgress, R::SubProgress>

impl<T> Progress for DoOrDiscard<T> where
    T: Progress
[src]

type SubProgress = DoOrDiscard<T::SubProgress>

impl<T: Progress> Progress for ThroughputOnDrop<T>[src]

type SubProgress = T::SubProgress

Loading content...