entry.go (567B)
1 package main 2 3 import "time" 4 5 type Entry struct { 6 Completed bool 7 TimeRange TimeRange 8 } 9 10 func NewCompletedEntry(start time.Time, stop time.Time) (Entry, error) { 11 timeRange, err := NewTimeRange(start, stop) 12 if err != nil { 13 return Entry{}, err 14 } 15 16 return Entry{TimeRange: timeRange, Completed: true}, nil 17 } 18 19 func NewRunningEntry(start time.Time) Entry { 20 timeRange, _ := NewTimeRange(start, start.Add(time.Second)) 21 return Entry{TimeRange: timeRange, Completed: false} 22 } 23 24 func (e Entry) Duration() time.Duration { 25 return e.TimeRange.Stop.Sub(e.TimeRange.Start) 26 }