use std::thread;
use std::time::Duration;
use utls::{prog::{PBStyle, PB}, vars::framerate::SIXTY_FPS};
fn main() {
let pb = PB::builder(1000)
.style(PBStyle::modern())
.width(100)
.description("({e}/ ETA {r})")
.message("Processing... {p}%")
.update_frequency(SIXTY_FPS)
.adv_stats(true)
.defer(false)
.precision(10)
.spinner(None)
.build();
let (handle, pb_ref) = pb.threaded_start();
PB::inc_until_arc(pb_ref.clone(), || {
thread::sleep(Duration::from_millis(10));
});
handle.join().unwrap();
let stats = pb_ref.lock().unwrap().get_stats();
pb_ref.lock().unwrap().finish_with_message("Task completed!");
println!("\nProgress Bar Statistics:");
println!("Target update frequency: {:?}", stats.target_update_freq);
println!("Minimum update interval: {:?}", stats.actual_min_update.unwrap_or(Duration::ZERO));
println!("Maximum update interval: {:?}", stats.actual_max_update.unwrap_or(Duration::ZERO));
println!("Average update interval: {:?}", stats.actual_avg_update.unwrap_or(Duration::ZERO));
println!("Total number of updates: {}", stats.total_updates);
println!("Total duration: {:?}", stats.total_duration.unwrap_or(Duration::ZERO));
}