1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
use super::{ Time, TimeConversion }; #[derive(TimeConversion)] pub struct TimeBuilder { hours: u64, minutes: u64, seconds: u64, milliseconds: u64, nanoseconds: u64, } impl TimeBuilder { pub fn new() -> Self { Self { hours: 0, minutes: 0, seconds: 0, milliseconds: 0, nanoseconds: 0 } } pub fn hours(mut self, hours: u64) -> Self { self.hours = 0; self.add_hours(hours); self } pub fn minutes(mut self, minutes: u64) -> Self { self.minutes = 0; self.add_minutes(minutes); self } pub fn seconds(mut self, seconds: u64) -> Self { self.seconds = 0; self.add_seconds(seconds); self } pub fn milliseconds(mut self, milliseconds: u64) -> Self { self.milliseconds = 0; self.add_milliseconds(milliseconds); self } pub fn nanoseconds(mut self, nanoseconds: u64) -> Self { self.nanoseconds = 0; self.add_nanoseconds(nanoseconds); self } pub fn build(self) -> Time { Time::new( self.hours, self.minutes, self.seconds, self.milliseconds, self.nanoseconds ) } } #[cfg(test)] mod tests;