Skip to main content

Breaks

Struct Breaks 

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

Database operations for manual break management.

Provides CRUD operations for break records with proper error handling and integration with the existing database infrastructure.

Implementations§

Source§

impl Breaks

Source

pub fn new() -> Result<Self>

Create a new Breaks database manager.

Initializes the breaks manager with database connection and ensures the breaks table exists through the migration system.

§Returns

Returns a configured Breaks instance ready for database operations.

§Examples
let breaks_db = Breaks::new()?;
Source

pub fn insert(&self, break_record: &Break) -> Result<i64>

Insert a new break record into the database.

Creates a new break record with the provided information. The break duration is calculated and stored automatically based on start and end times.

§Arguments
  • break_record - The break information to insert
§Returns

Returns Ok(()) on successful insertion, or an error if the database operation fails or validation errors occur.

§Examples
let break_record = Break {
    id: None,
    date: date,
    start: start_time,
    end: end_time,
    duration: Duration::minutes(30),
    reason: Some("Lunch break".to_string()),
    created_at: None,
};

breaks_db.insert(&break_record)?;
Source

pub fn get_daily_breaks(&self, date: NaiveDate) -> Result<Vec<Break>>

Retrieve all breaks for a specific date.

Returns all manual break records for the given date, ordered by start time. This is typically used for daily productivity calculations and reporting.

§Arguments
  • date - The date to retrieve breaks for
§Returns

Returns a vector of Break records for the specified date, or an error if the database query fails.

§Examples
let today = chrono::Local::now().date_naive();
let breaks = breaks_db.get_daily_breaks(today)?;
Source

pub fn delete(&self, id: i64) -> Result<()>

Delete a break record by ID.

Removes a break record from the database. This is typically used for correcting mistakes or adjusting productivity calculations.

§Arguments
  • id - The ID of the break record to delete
§Returns

Returns Ok(()) on successful deletion, or an error if the record doesn’t exist or the database operation fails.

§Examples
breaks_db.delete(break_id)?;
Source

pub fn get_by_id(&self, id: i64) -> Result<Option<Break>>

Get a specific break by ID.

Retrieves a single break record by its unique identifier.

§Arguments
  • id - The ID of the break record to retrieve
§Returns

Returns Some(Break) if found, None if not found, or an error if the database query fails.

Auto Trait Implementations§

§

impl !Freeze for Breaks

§

impl !RefUnwindSafe for Breaks

§

impl !Sync for Breaks

§

impl !UnwindSafe for Breaks

§

impl Send for Breaks

§

impl Unpin for Breaks

§

impl UnsafeUnpin for Breaks

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more