Is there a way to place the spinner on a chosen column?
Hi,
Say, the second console column, instead of the first one by default. It looks like SpinnerBuilder is responsible for customization, but it is unavailable in the spinners context. Or is it just my lack of experience?
This example does precisely what I want:
extern crate spinner;
use std::time::Duration;
use std::thread;
use spinner::SpinnerBuilder;
fn main() {
let sp = SpinnerBuilder::new("Long Running op!".into()).
format(|sp, status|{
format!(" {spin} -- Currently working on: \'{status}\' -- {spin}",
spin = sp, status = status)
}).start();
thread::sleep(Duration::from_millis(2000));
sp.message("Updating...".into());
sp.update("Fixing things...".into());
thread::sleep(Duration::from_millis(2000));
sp.message("Done!".into());
sp.close();
}
The line
format!(" {spin} -- Currently working on: \'{status}\' -- {spin}",
Is all I need.
Hello!
Yes I will accept a PR that let you specify a lambda instead of a string as a second argument of Spinner::new
Spinner::new(Spinners::Dots9, |sp, status| {format!(" {spin} -- Currently working on: \'{status}\' -- {spin}"});
We could leverage trait to do that.
Thanks! I am not very well versed with pull requests and things. I understand that some coding is supposed be mine, and some yours. I am not sure about which responsibility goes to whom.
It can go that way, try to make the change you want and submit the patch (the pull-request) and from there we will see what to do next :)
I've made a fork, messed around with it a bit. I can probably make a patch, formally, but I can't see a reasonably clean solution so far. First thing you'd have to do, is to trash it :)
I did it, finally. Not sure whether to be proud of the result.