proteus_audio 0.3.1

A command line utility and library for playing .prot audio files.
Documentation
use std::time::{Duration, Instant};

#[derive(Debug, Clone)]
pub struct Timer {
    pub time: Duration,
    start_time: Option<Instant>,
}

impl Timer {
    pub fn new() -> Self {
        Self {
            time: Duration::new(0, 0),
            start_time: None,
        }
    }

    pub fn start(&mut self) {
        self.start_time = Some(Instant::now());
    }

    pub fn start_at(&mut self, time: Duration) {
        self.start_time = Some(Instant::now());
        self.time = time;
    }

    pub fn un_pause(&mut self) {
        if self.start_time == None {
            self.start_time = Some(Instant::now());
        }
    }

    pub fn pause(&mut self) {
        if let Some(start) = self.start_time {
            self.time += start.elapsed();
            self.start_time = None;
        }
    }

    pub fn stop(&mut self) {
        self.reset();
    }

    pub fn get_time(&self) -> Duration {
        if let Some(start) = self.start_time {
            self.time + start.elapsed()
        } else {
            self.time
        }
    }

    pub fn reset(&mut self) {
        self.start_time = None;
        self.time = Duration::new(0, 0);
    }
}