burbomath 0.0.2

Burbokop's rust math library
Documentation
use core::time::Duration;

pub struct RelativeDuration<D = Duration> {
    duration: D,
    sign: i8,
}

impl RelativeDuration {
    pub fn from_secs_f32(secs: f32) -> Self {
        Self {
            duration: Duration::from_secs_f32(secs.abs()),
            sign: secs.signum() as i8,
        }
    }

    pub fn from_secs_f64(secs: f64) -> Self {
        Self {
            duration: Duration::from_secs_f64(secs.abs()),
            sign: secs.signum() as i8,
        }
    }

    pub const fn from_secs(secs: u64) -> Self {
        Self {
            duration: Duration::from_secs(secs),
            sign: 1,
        }
    }

    pub const fn as_secs_f32(&self) -> f32 {
        self.duration.as_secs_f32() * self.sign as f32
    }
}