Struct cursive_extras::LoadingAnimation
source · [−]Expand description
Simple loading animation view that runs a task in a background thread and shows a loading animation and message while it completes and allows for retrieval of a return value
Example
let mut root = cursive::default();
let anim = LoadingAnimation::new("Loading Dummy Resource...", || {
thread::sleep(Duration::from_secs(10));
});
root.add_layer(Dialog::around(anim.with_name("loader")).title("Loading..."));
root.set_fps(30);
root.set_global_callback(Event::Refresh, |view| {
let mut loader = view.find_name::<LoadingAnimation<()>>("loader").unwrap();
if loader.is_done() {
loader.finish().unwrap_or(());
view.quit()
}
});
root.run();Implementations
sourceimpl<T: Send + Sync> LoadingAnimation<T>
impl<T: Send + Sync> LoadingAnimation<T>
sourcepub fn new<U>(message: &str, task: U) -> LoadingAnimation<T> where
U: FnOnce() -> T + Send + Sync + 'static,
pub fn new<U>(message: &str, task: U) -> LoadingAnimation<T> where
U: FnOnce() -> T + Send + Sync + 'static,
Create a new LoadingAnimation with the specified closure or function pointer as the task
sourcepub fn finish(&mut self) -> Option<T>
pub fn finish(&mut self) -> Option<T>
Join with the task’s thread, block until it is finished, and return the resulting value
It is best to run this when LoadingAnimation::is_done() is true
This will return None if called more than once
Panics
This method will panic if the underlying task panicked while executing
Trait Implementations
sourceimpl<T: Clone + Send + Sync + 'static> Clone for LoadingAnimation<T>
impl<T: Clone + Send + Sync + 'static> Clone for LoadingAnimation<T>
sourcefn clone(&self) -> LoadingAnimation<T>
fn clone(&self) -> LoadingAnimation<T>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl<T: Send + Sync> View for LoadingAnimation<T>
impl<T: Send + Sync> View for LoadingAnimation<T>
sourcefn draw(&self, printer: &Printer<'_, '_>)
fn draw(&self, printer: &Printer<'_, '_>)
Draws the view with the given printer (includes bounds) and focus. Read more
sourcefn on_event(&mut self, event: Event) -> EventResult
fn on_event(&mut self, event: Event) -> EventResult
Called when an event is received (key press, mouse event, …). Read more
sourcefn required_size(&mut self, _: Vec2) -> Vec2
fn required_size(&mut self, _: Vec2) -> Vec2
Returns the minimum size the view requires with the given restrictions. 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 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<T> !RefUnwindSafe for LoadingAnimation<T>
impl<T> !Send for LoadingAnimation<T>
impl<T> !Sync for LoadingAnimation<T>
impl<T> Unpin for LoadingAnimation<T>
impl<T> !UnwindSafe for LoadingAnimation<T>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
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 T where
T: View,
impl<T> Finder for T where
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 T where
T: View,
impl<T> IntoBoxedView for T where
T: View,
sourcefn into_boxed_view(self) -> Box<dyn View + 'static, Global>
fn into_boxed_view(self) -> Box<dyn View + 'static, Global>
Returns a Box<View>.
sourceimpl<T> Resizable for T where
T: View,
impl<T> Resizable for T where
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 T where
T: View,
impl<T> Scrollable for T where
T: View,
sourcefn scrollable(self) -> ScrollView<Self>
fn scrollable(self) -> ScrollView<Self>
Wraps self in a ScrollView.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more