time.go 506 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package optional
  2. import "time"
  3. type Time struct {
  4. isSet bool
  5. value time.Time
  6. }
  7. func NewTime(value time.Time) Time {
  8. return Time{
  9. true,
  10. value,
  11. }
  12. }
  13. // EmptyTime returns a new Time that does not have a value set.
  14. func EmptyTime() Time {
  15. return Time{
  16. false,
  17. time.Time{},
  18. }
  19. }
  20. func (b Time) IsSet() bool {
  21. return b.isSet
  22. }
  23. func (b Time) Value() time.Time {
  24. return b.value
  25. }
  26. func (b Time) Default(defaultValue time.Time) time.Time {
  27. if b.isSet {
  28. return b.value
  29. }
  30. return defaultValue
  31. }