Trait gix::Count

source ·
pub trait Count {
    // Required methods
    fn set(&self, step: usize);
    fn step(&self) -> usize;
    fn inc_by(&self, step: usize);
    fn counter(&self) -> Arc<AtomicUsize>;

    // Provided method
    fn inc(&self) { ... }
}
Expand description

A thread-safe read-only counter, with unknown limits.

Required Methods§

source

fn set(&self, step: usize)

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.

source

fn step(&self) -> usize

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

source

fn inc_by(&self, step: usize)

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

source

fn counter(&self) -> Arc<AtomicUsize>

Return an atomic counter for direct access to the underlying state.

This is useful if multiple threads want to access the same progress, without the need for provide each their own progress and aggregating the result.

Provided Methods§

source

fn inc(&self)

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

Implementations on Foreign Types§

source§

impl Count for Box<dyn Progress>

source§

fn set(&self, step: usize)

source§

fn step(&self) -> usize

source§

fn inc_by(&self, step: usize)

source§

fn inc(&self)

source§

fn counter(&self) -> Arc<AtomicUsize>

source§

impl<'a, T> Count for &'a T
where T: Count + ?Sized,

source§

fn set(&self, step: usize)

source§

fn step(&self) -> usize

source§

fn inc_by(&self, step: usize)

source§

fn inc(&self)

source§

fn counter(&self) -> Arc<AtomicUsize>

source§

impl<'a, T> Count for &'a mut T
where T: Count + ?Sized,

source§

fn set(&self, step: usize)

source§

fn step(&self) -> usize

source§

fn inc_by(&self, step: usize)

source§

fn inc(&self)

source§

fn counter(&self) -> Arc<AtomicUsize>

Implementors§