spin_freeze 0.2.1

Calculate how long to wait for spinner freeze and generate spinner freeze commands
Documentation
use std::{env, io::{self, BufRead, Write}};

use spin_freeze::{frames_to_freeze, freeze_comands, DELTA_TIME};

fn get_user_input(prompt: &str)->io::Result<String>{
    print!("{}", prompt);
    io::stdout().flush()?;
    io::stdin().lock().lines().next().unwrap()
}
fn main()->io::Result<()>{
    let mut args = env::args();
    args.next();
    let arg = args.next();
    let cycle = match arg{
        None=>{println!("You must enter \"wait\" or \"cycle\" to choose a mode. Wait mode is for just waiting for freeze, cycle mode is for waiting with a repeat");
            std::process::exit(0)
        },
        Some(s)=>{
            s.to_lowercase()=="cycle"
        }
    };
    if cycle {println!("Enter configurations for cycle mode")} else {println!("Enter configurations for wait mode")};
    let time_active: f32 = get_user_input("Time Active when commands should be: ")?.parse().unwrap();
    let chapter_time: usize = get_user_input("Chapter time in frames when commands should be: ")?.parse().unwrap();
    let frames_before_freeze: usize = get_user_input("Number of frames before freeze should occur from commands: ")?.parse().unwrap();
    if cycle{
        let cycle_length: usize = get_user_input("Cycle length in frames: ")?.parse().unwrap();
        let c_info = spin_freeze::get_cycle_wait_info(time_active, cycle_length, chapter_time, frames_before_freeze);
        println!("The wait will take {} cycles", c_info.cycle_count);
        println!("Leaving {} frames remaining", c_info.remaining_frames);
        let before = get_user_input("Will the remaining frames be placed before or after the read commands? ")?;
        let before = before.to_lowercase().contains('b');
        if before {
            let mut time_active = time_active;
            let mut chapter_time = chapter_time;
            for _ in 0..c_info.remaining_frames{
                time_active+=DELTA_TIME;
                chapter_time+=1;
            }
            println!("{}",spin_freeze::cycle_commands(time_active, cycle_length, chapter_time, frames_before_freeze).0);
        } else {
            println!("{}",spin_freeze::cycle_commands(time_active, cycle_length, chapter_time, frames_before_freeze).0);
        }
    } else {
        let wait_time = frames_to_freeze(time_active)-frames_before_freeze;
        println!("The freeze wait will take {} frames",wait_time);
        println!("{}",freeze_comands(time_active, chapter_time, frames_before_freeze));
    }
    Ok(())
}