console-rs / indicatif

A command line progress reporting library for Rust
MIT License
4.36k stars 241 forks source link

`set_draw_target` causes insert order (on `MultiProgress`) to not be respected. #428

Open arifd opened 2 years ago

arifd commented 2 years ago

I want to use it to set the refresh rate to something a little slower, but doing so causes the insert order to be changed which is unfortunate because I have "total progress" bar that I always want on the bottom

djc commented 2 years ago

What version are you using? Please try the latest rc, a lot of this stuff changed.

arifd commented 2 years ago

Sorry, I should have mentioned!

indicatif = { git="https://github.com/console-rs/indicatif.git", rev = "588ba660b4fe7f2357e7dc3e7974a260cf494a14" }

Which is currently the lastest commit.

As an update, I can set_draw_target on the MultiProgress, which does the trick for me, but I guess if anyone wants individual refresh rates on bars, that could be problem.

djc commented 2 years ago

Unless you have benchmarked on this RC that you need to change the refresh rate, I'd try without changing the refresh rate. Also I don't know exactly what your code looks like (a code sample might be useful), but a MultiProgress acts like a kind of draw target so setting the refresh rate on ProgressBars before adding them to a MultiProgress doesn't actually have the intended effect. If you want to set the draw target's refresh rate, you should do that for the MultiProgress itself only.