Struct cursive::prelude::ProgressBar
[−]
[src]
pub struct ProgressBar { // some fields omitted }
Animated bar showing a progress value.
This bar has an internal counter, and adapts the length of the displayed bar to the relative position of the counter between a minimum and maximum values.
It also prints a customizable text in the center of the bar, which defaults to the progression percentage.
Example
let bar = ProgressBar::new() .with_task(|counter| { // This closure is called in parallel. for _ in 0..100 { // Here we can communicate some // advancement back to the bar. counter.tick(1); } });
Methods
impl ProgressBar
[src]
fn new() -> Self
Creates a new progress bar.
Default values:
min
: 0max
: 100value
: 0
fn with_value(self, value: Counter) -> Self
Sets the value to follow.
Use this to manually control the progress to display
by directly modifying the value pointed to by value
.
fn start<F: FnOnce(Counter) + Send + 'static>(&mut self, f: F)
Starts a function in a separate thread, and monitor the progress.
f
will be given a Counter
to increment the bar's progress.
This does not reset the value, so it can be called several times to advance the progress in multiple sessions.
fn with_task<F: FnOnce(Counter) + Send + 'static>(self, task: F) -> Self
Starts a function in a separate thread, and monitor the progress.
Chainable variant.
fn with_label<F: Fn(usize, (usize, usize)) -> String + 'static>(self, label_maker: F) -> Self
Sets the label generator.
The given function will be called with (value, (min, max))
.
Its output will be used as the label to print inside the progress bar.
The default one shows a percentage progress:
fn make_percentage(value: usize, (min, max): (usize, usize)) -> String { let percent = 101 * (value - min) / (1 + max - min); format!("{} %", percent) }
fn min(self, min: usize) -> Self
Sets the minimum value.
When value
equals min
, the bar is at the minimum level.
If self.min > max
, self.min
is set to max
.
fn max(self, max: usize) -> Self
Sets the maximum value.
When value
equals max
, the bar is at the maximum level.
If min > self.max
, self.max
is set to min
.
fn range(self, min: usize, max: usize) -> Self
Sets the min
and max
range for the value.
If min > max
, swap the two values.
fn set_value(&mut self, value: usize)
Sets the current value.
Value is clamped between min
and max
.
Trait Implementations
impl Default for ProgressBar
[src]
impl View for ProgressBar
[src]
fn draw(&self, printer: &Printer)
Draws the view with the given printer (includes bounds) and focus.
fn on_event(&mut self, Event) -> EventResult
Called when a key was pressed. Default implementation just ignores it.
fn get_min_size(&mut self, constraint: Vec2) -> Vec2
Returns the minimum size the view requires with the given restrictions. Read more
fn needs_relayout(&self) -> bool
Returns true
if the view content changed since last layout phase. Read more
fn layout(&mut self, Vec2)
Called once the size for this view has been decided, Read more
fn find(&mut self, &Selector) -> Option<&mut Any>
Finds the view pointed to by the given path. Read more
fn take_focus(&mut self, source: Direction) -> bool
This view is offered focus. Will it take it? Read more