use crate::{ffi::system as ffi, sf_box::Dispose, system::Time, SfBox};
pub use ffi::sfClock as Clock;
impl Dispose for Clock {
unsafe fn dispose(&mut self) {
ffi::sfClock_delete(self);
}
}
impl Clock {
#[must_use]
pub fn start() -> SfBox<Self> {
unsafe { SfBox::new(ffi::sfClock_new()).unwrap() }
}
#[must_use]
pub fn elapsed_time(&self) -> Time {
unsafe { Time::from_raw(ffi::sfClock_getElapsedTime(self)) }
}
pub fn restart(&mut self) -> Time {
unsafe { Time::from_raw(ffi::sfClock_restart(self)) }
}
}
impl Default for SfBox<Clock> {
fn default() -> Self {
Clock::start()
}
}