Struct cursive::views::ProgressBar
source · [−]pub struct ProgressBar { /* private fields */ }
Expand description
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.
The bar defaults to the current theme’s highlight color, but that can be customized.
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);
}
});
Implementations
sourceimpl ProgressBar
impl ProgressBar
sourcepub fn new() -> ProgressBar
pub fn new() -> ProgressBar
Creates a new progress bar.
Default values:
min
: 0max
: 100value
: 0
sourcepub fn with_value(self, value: Counter) -> ProgressBar
pub fn with_value(self, value: Counter) -> ProgressBar
Sets the value to follow.
Use this to manually control the progress to display
by directly modifying the value pointed to by value
.
sourcepub fn start<F>(&mut self, f: F)where
F: 'static + FnOnce(Counter) + Send,
pub fn start<F>(&mut self, f: F)where
F: 'static + FnOnce(Counter) + Send,
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.
sourcepub fn with_task<F>(self, task: F) -> ProgressBarwhere
F: 'static + FnOnce(Counter) + Send,
pub fn with_task<F>(self, task: F) -> ProgressBarwhere
F: 'static + FnOnce(Counter) + Send,
Starts a function in a separate thread, and monitor the progress.
Chainable variant.
sourcepub fn with_label<F>(self, label_maker: F) -> ProgressBarwhere
F: 'static + Fn(usize, (usize, usize)) -> String,
pub fn with_label<F>(self, label_maker: F) -> ProgressBarwhere
F: 'static + Fn(usize, (usize, usize)) -> String,
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_progress(value: usize, (min, max): (usize, usize)) -> String {
let percent = 101 * (value - min) / (1 + max - min);
format!("{} %", percent)
}
sourcepub fn set_label<F>(&mut self, label_maker: F)where
F: 'static + Fn(usize, (usize, usize)) -> String,
pub fn set_label<F>(&mut self, label_maker: F)where
F: 'static + Fn(usize, (usize, usize)) -> String,
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.
sourcepub fn min(self, min: usize) -> ProgressBar
pub fn min(self, min: usize) -> ProgressBar
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
.
Chainable variant.
sourcepub fn set_min(&mut self, min: usize)
pub fn set_min(&mut self, min: usize)
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
.
sourcepub fn max(self, max: usize) -> ProgressBar
pub fn max(self, max: usize) -> ProgressBar
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
.
Chainable variant.
sourcepub fn set_max(&mut self, max: usize)
pub fn set_max(&mut self, max: usize)
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
.
sourcepub fn range(self, min: usize, max: usize) -> ProgressBar
pub fn range(self, min: usize, max: usize) -> ProgressBar
Sets the min
and max
range for the value.
If min > max
, swap the two values.
Chainable variant.
sourcepub fn set_range(&mut self, min: usize, max: usize)
pub fn set_range(&mut self, min: usize, max: usize)
Sets the min
and max
range for the value.
If min > max
, swap the two values.
sourcepub fn set_value(&mut self, value: usize)
pub fn set_value(&mut self, value: usize)
Sets the current value.
Value is clamped between min
and max
.
sourcepub fn set_counter(&mut self, value: Counter)
pub fn set_counter(&mut self, value: Counter)
Sets the value to follow.
Use this to manually control the progress to display
by directly modifying the value pointed to by value
.
sourcepub fn set_color<C>(&mut self, color: C)where
C: Into<ColorType>,
pub fn set_color<C>(&mut self, color: C)where
C: Into<ColorType>,
Sets the color style.
The default color is PaletteColor::Highlight
.
sourcepub fn with_color<C>(self, color: C) -> ProgressBarwhere
C: Into<ColorType>,
pub fn with_color<C>(self, color: C) -> ProgressBarwhere
C: Into<ColorType>,
Sets the color style.
Chainable variant of set_color
.
Trait Implementations
sourceimpl Default for ProgressBar
impl Default for ProgressBar
sourcefn default() -> ProgressBar
fn default() -> ProgressBar
Returns the “default value” for a type. Read more
sourceimpl View for ProgressBar
impl View for ProgressBar
sourcefn draw(&self, printer: &Printer<'_, '_>)
fn draw(&self, printer: &Printer<'_, '_>)
Draws the view with the given printer (includes bounds) and focus. Read more
sourcefn needs_relayout(&self) -> bool
fn needs_relayout(&self) -> bool
Should return true
if the view content changed since the last call
to layout()
. Read more
sourcefn required_size(&mut self, constraint: XY<usize>) -> XY<usize>
fn required_size(&mut self, constraint: XY<usize>) -> XY<usize>
Returns the minimum size the view requires with the given restrictions. Read more
sourcefn on_event(&mut self, Event) -> EventResult
fn on_event(&mut self, Event) -> EventResult
Called when an event is received (key press, mouse event, …). Read more
sourcefn call_on_any(
&mut self,
&Selector<'_>,
&'a mut (dyn FnMut(&mut (dyn View + 'static)) + 'a)
)
fn call_on_any(
&mut self,
&Selector<'_>,
&'a mut (dyn FnMut(&mut (dyn View + 'static)) + 'a)
)
Runs a closure on the view identified by the given selector. Read more
sourcefn focus_view(&mut self, &Selector<'_>) -> Result<EventResult, ViewNotFound>
fn focus_view(&mut self, &Selector<'_>) -> Result<EventResult, ViewNotFound>
Moves the focus to the view identified by the given selector. Read more
sourcefn take_focus(&mut self, source: Direction) -> Result<EventResult, CannotFocus>
fn take_focus(&mut self, source: Direction) -> Result<EventResult, CannotFocus>
Attempt to give this view the focus. Read more
Auto Trait Implementations
impl !RefUnwindSafe for ProgressBar
impl !Send for ProgressBar
impl !Sync for ProgressBar
impl Unpin for ProgressBar
impl !UnwindSafe for ProgressBar
Blanket Implementations
sourceimpl<T> AnyView for Twhere
T: View,
impl<T> AnyView for Twhere
T: View,
sourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Downcast self to a mutable Any
.
sourcefn as_boxed_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<F, A>impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
fn as_boxed_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<F, A>impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
Returns a boxed any from a boxed self. Read more
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Finder for Twhere
T: View,
impl<T> Finder for Twhere
T: View,
sourcefn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F)where
V: View,
F: FnMut(&mut V),
fn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F)where
V: View,
F: FnMut(&mut V),
Runs a callback on all views identified by sel
. Read more
sourcefn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R>where
V: View,
F: FnOnce(&mut V) -> R,
fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R>where
V: View,
F: FnOnce(&mut V) -> R,
Runs a callback on the view identified by sel
. Read more
sourceimpl<T> IntoBoxedView for Twhere
T: View,
impl<T> IntoBoxedView for Twhere
T: View,
sourcefn into_boxed_view(self) -> Box<dyn View + 'static, Global>ⓘNotable traits for Box<F, A>impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
fn into_boxed_view(self) -> Box<dyn View + 'static, Global>ⓘNotable traits for Box<F, A>impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
Returns a Box<View>
.
sourceimpl<T> Resizable for Twhere
T: View,
impl<T> Resizable for Twhere
T: View,
sourcefn resized(
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
fn resized(
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
Wraps self
in a ResizedView
with the given size constraints.
sourcefn fixed_size<S>(self, size: S) -> ResizedView<Self>where
S: Into<XY<usize>>,
fn fixed_size<S>(self, size: S) -> ResizedView<Self>where
S: Into<XY<usize>>,
Wraps self
into a fixed-size ResizedView
.
sourcefn fixed_width(self, width: usize) -> ResizedView<Self>
fn fixed_width(self, width: usize) -> ResizedView<Self>
Wraps self
into a fixed-width ResizedView
.
sourcefn fixed_height(self, height: usize) -> ResizedView<Self>
fn fixed_height(self, height: usize) -> ResizedView<Self>
Wraps self
into a fixed-width ResizedView
.
sourcefn full_screen(self) -> ResizedView<Self>
fn full_screen(self) -> ResizedView<Self>
Wraps self
into a full-screen ResizedView
.
sourcefn full_width(self) -> ResizedView<Self>
fn full_width(self) -> ResizedView<Self>
Wraps self
into a full-width ResizedView
.
sourcefn full_height(self) -> ResizedView<Self>
fn full_height(self) -> ResizedView<Self>
Wraps self
into a full-height ResizedView
.
sourcefn max_size<S>(self, size: S) -> ResizedView<Self>where
S: Into<XY<usize>>,
fn max_size<S>(self, size: S) -> ResizedView<Self>where
S: Into<XY<usize>>,
Wraps self
into a limited-size ResizedView
.
sourcefn max_width(self, max_width: usize) -> ResizedView<Self>
fn max_width(self, max_width: usize) -> ResizedView<Self>
Wraps self
into a limited-width ResizedView
.
sourcefn max_height(self, max_height: usize) -> ResizedView<Self>
fn max_height(self, max_height: usize) -> ResizedView<Self>
Wraps self
into a limited-height ResizedView
.
sourcefn min_size<S>(self, size: S) -> ResizedView<Self>where
S: Into<XY<usize>>,
fn min_size<S>(self, size: S) -> ResizedView<Self>where
S: Into<XY<usize>>,
Wraps self
into a ResizedView
at least sized size
.
sourcefn min_width(self, min_width: usize) -> ResizedView<Self>
fn min_width(self, min_width: usize) -> ResizedView<Self>
Wraps self
in a ResizedView
at least min_width
wide.
sourcefn min_height(self, min_height: usize) -> ResizedView<Self>
fn min_height(self, min_height: usize) -> ResizedView<Self>
Wraps self
in a ResizedView
at least min_height
tall.
sourceimpl<T> Scrollable for Twhere
T: View,
impl<T> Scrollable for Twhere
T: View,
sourcefn scrollable(self) -> ScrollView<Self>
fn scrollable(self) -> ScrollView<Self>
Wraps self
in a ScrollView
.