Skip to main content

TimerManager

Struct TimerManager 

Source
pub struct TimerManager { /* private fields */ }
Expand description

Timer manager for controlling timer operations

Provides methods to start, stop, pause, and resume timers, as well as query their current status. Manages persistence through the StorageManager layer.

Implementations§

Source§

impl TimerManager

Source

pub fn new(storage: Storage) -> Self

Create a new timer manager with low-level Storage For internal use - external callers should use storage::StorageManager instead

Source

pub fn start( &self, task_name: String, description: Option<String>, project: Option<String>, customer: Option<String>, source_record_id: Option<u32>, source_record_date: Option<Date>, ) -> Result<TimerState>

Start a new timer

§Errors

Returns an error if a timer is already running

Source

pub fn stop(&self) -> Result<WorkRecord>

Stop the active timer and convert it to a WorkRecord

§Errors

Returns an error if no timer is running

Source

pub fn pause(&self) -> Result<TimerState>

Pause the active timer

§Errors

Returns an error if timer is not running

Source

pub fn resume(&self) -> Result<TimerState>

Resume a paused timer

§Errors

Returns an error if timer is not paused

Source

pub fn status(&self) -> Result<Option<TimerState>>

Get the current timer status

Returns None if no timer is running

Source

pub fn get_elapsed_duration(&self, timer: &TimerState) -> StdDuration

Calculate elapsed duration of a timer

Returns the time since start_time, minus any paused durations.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.