pub struct MultiSpinner { /* private fields */ }Expand description
struct holding multiple spinners
§Single Spinner Example
use std::thread::sleep;
use std::time::Duration;
use zenity::spinner::{Frames, MultiSpinner};
let spinner = MultiSpinner::default();
spinner.run_all();
sleep(Duration::from_secs(4));
// do work here...
// get last created uid
spinner.set_text(&spinner.get_last(), "spinner1".to_string());
// no need to stop the spinners they will run out of scope and get droppedImplementations§
Source§impl MultiSpinner
use std::thread::sleep;
use std::time::Duration;
use zenity::spinner::{Frames, MultiSpinner};
let spinner = MultiSpinner::default();
let spinner1 = spinner.get_last();
let spinner2 = spinner.add(Frames::default()); // this already returns the uid
spinner.run_all();
sleep(Duration::from_secs(4));
spinner.set_text(&spinner1, "spinner1".to_string());
spinner.stop(&spinner1); // stop the spinner1
spinner.set_text(&spinner2, "spinner2 :3".to_string());
// no need to stop spinner2 #
impl MultiSpinner
use std::thread::sleep;
use std::time::Duration;
use zenity::spinner::{Frames, MultiSpinner};
let spinner = MultiSpinner::default();
let spinner1 = spinner.get_last();
let spinner2 = spinner.add(Frames::default()); // this already returns the uid
spinner.run_all();
sleep(Duration::from_secs(4));
spinner.set_text(&spinner1, "spinner1".to_string());
spinner.stop(&spinner1); // stop the spinner1
spinner.set_text(&spinner2, "spinner2 :3".to_string());
// no need to stop spinner2 #Sourcepub fn new() -> Self
pub fn new() -> Self
creates a new MultiSpinner instance
§Example
use zenity::spinner::MultiSpinner;
let spinner = MultiSpinner::new();Sourcepub fn get_last(&self) -> usize
pub fn get_last(&self) -> usize
get the last create uid
§Returns
unique identifier of the last created spinner
§Example
use zenity::spinner::MultiSpinner;
use zenity::spinner::Frames;
let spinner = MultiSpinner::new();
spinner.add(Frames::default());
// the return values is an id you will need to edit the spinner later on
let spinner1_uid = spinner.get_last();Sourcepub fn clear(&self, rows: Option<u16>)
pub fn clear(&self, rows: Option<u16>)
Sets the number of rows to clear in the terminal before starting the animation. If no value is provided, the terminal will clear all rows by default, effectively clearing the screen without deleting old content, which might leave empty rows.
§Example
use zenity::spinner::MultiSpinner;
use zenity::spinner::Frames;
let spinner = MultiSpinner::new();
// Clear with the default number of rows (entire terminal)
spinner.add(Frames::default());
// Clear with a specified number of rows (12)
spinner.clear(Some(12));
// Dont Clean anything
spinner.clear(None);
spinner.run_all()§Parameters
rows: An optionalu16specifying the number of rows to clear. IfNone, no rows will be cleared.
Sourcepub fn set_text(&self, uid: &usize, new_text: String)
pub fn set_text(&self, uid: &usize, new_text: String)
set text of a specific spinner
if the uid is invalid, this does nothing
§Example
use zenity::spinner::MultiSpinner;
use zenity::spinner::Frames;
use zenity::style::StyledString;
let spinner = MultiSpinner::default();
spinner.set_text(&spinner.get_last(),"example".to_string());Sourcepub fn set_styled_text(&self, uid: &usize, new_text: StyledString)
pub fn set_styled_text(&self, uid: &usize, new_text: StyledString)
set a styled text of a specific spinner
if the uid is invalid, this does nothing
§Example
use crossterm::style::Color;
use zenity::spinner::MultiSpinner;
use zenity::spinner::Frames;
use zenity::style::StyledString;
let spinner = MultiSpinner::default();
spinner.set_styled_text(&spinner.get_last(),
StyledString::simple("test string", Some(Color::Red), Some(Color::Black), None));Sourcepub fn stop(&self, uid: &usize)
pub fn stop(&self, uid: &usize)
stops a spinner if the uid is invalid this does nothing
§Example
use zenity::spinner::MultiSpinner;
use zenity::spinner::Frames;
let spinner = MultiSpinner::default();
spinner.stop(&spinner.get_last());Sourcepub fn show_line_number(&self)
pub fn show_line_number(&self)
shows the line number of the running spinners
[1/4] .¸¸¸¸¸¸¸¸
§Example
use zenity::spinner::MultiSpinner;
use zenity::spinner::Frames;
let spinner = MultiSpinner::default();
spinner.show_line_number();Sourcepub fn run_all(&self)
pub fn run_all(&self)
execute all created spinners
§Example
use zenity::spinner::MultiSpinner;
use zenity::spinner::Frames;
// make spinner mutable
let mut spinner = MultiSpinner::default();
// queue spinners for execution
let spinner_num1 = spinner.get_last();
let spinner_num2 = spinner.add(Frames::dots_simple_big1());
//start the spinners
spinner.run_all();Trait Implementations§
Source§impl Clone for MultiSpinner
impl Clone for MultiSpinner
Source§fn clone(&self) -> MultiSpinner
fn clone(&self) -> MultiSpinner
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Default for MultiSpinner
impl Default for MultiSpinner
Auto Trait Implementations§
impl Freeze for MultiSpinner
impl RefUnwindSafe for MultiSpinner
impl Send for MultiSpinner
impl Sync for MultiSpinner
impl Unpin for MultiSpinner
impl UnwindSafe for MultiSpinner
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more