pub struct TimerStruct {
pub duration: u32,
pub hours: u32,
pub minutes: u32,
pub seconds: u32,
}Expand description
Represents a countdown timer.
Fields§
§duration: u32The total duration of the timer in seconds.
hours: u32The initial hours component of the timer.
minutes: u32The initial minutes component of the timer.
seconds: u32The initial seconds component of the timer.
Implementations§
Source§impl TimerStruct
impl TimerStruct
Sourcepub fn new(
hours: u32,
minutes: u32,
seconds: u32,
) -> Result<TimerStruct, &'static str>
pub fn new( hours: u32, minutes: u32, seconds: u32, ) -> Result<TimerStruct, &'static str>
Creates a new TimerStruct instance.
§Arguments
hours- The hours component of the timer duration.minutes- The minutes component of the timer duration.seconds- The seconds component of the timer duration.
§Returns
Ok(TimerStruct)if the total duration calculated fromhours,minutes, andsecondsis greater than 0.Err("Duration need to be 1 or more seconds.")if the total duration is 0.
§Examples
use your_crate_name::TimerStruct; // Replace your_crate_name with your actual crate name
let timer = TimerStruct::new(0, 1, 30).expect("Failed to create timer"); // 1 minute 30 seconds
let invalid_timer = TimerStruct::new(0, 0, 0); // This will return an ErrSourcepub fn start_timer<W: Write>(&self, writer: &mut W)
pub fn start_timer<W: Write>(&self, writer: &mut W)
Starts the countdown timer.
The timer will print the remaining time to the provided writer every second,
overwriting the previous line. When the timer reaches 0, it prints the final
0:0:0 with a newline and stops.
§Arguments
writer- A mutable reference to any type that implements thestd::io::Writetrait (e.g.,&mut std::io::Stdout).
§Examples
use clock-timer::TimerStruct; // Replace your_crate_name with your actual crate name
use std::io::{self, stdout};
let timer = TimerStruct::new(0, 0, 5).unwrap(); // 5-second timer
let mut writer = stdout();
timer.start_timer(&mut writer);
println!("Timer finished!");Trait Implementations§
Source§impl Clone for TimerStruct
impl Clone for TimerStruct
Source§fn clone(&self) -> TimerStruct
fn clone(&self) -> TimerStruct
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TimerStruct
impl Debug for TimerStruct
impl Copy for TimerStruct
Auto Trait Implementations§
impl Freeze for TimerStruct
impl RefUnwindSafe for TimerStruct
impl Send for TimerStruct
impl Sync for TimerStruct
impl Unpin for TimerStruct
impl UnwindSafe for TimerStruct
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more