|
| 1 | +package refined4s.modules.doobie.derivation.types |
| 2 | + |
| 3 | +import cats.Show |
| 4 | +import doobie.{Get, Put} |
| 5 | +import refined4s.types.time.* |
| 6 | + |
| 7 | +/** @author Kevin Lee |
| 8 | + * @since 2025-09-03 |
| 9 | + */ |
| 10 | +trait time { |
| 11 | + |
| 12 | + inline given derivedMonthGet: Get[Month] = time.derivedMonthGet |
| 13 | + inline given derivedMonthPut: Put[Month] = time.derivedMonthPut |
| 14 | + |
| 15 | + inline given derivedDayGet: Get[Day] = time.derivedDayGet |
| 16 | + inline given derivedDayPut: Put[Day] = time.derivedDayPut |
| 17 | + |
| 18 | + inline given derivedHourGet: Get[Hour] = time.derivedHourGet |
| 19 | + inline given derivedHourPut: Put[Hour] = time.derivedHourPut |
| 20 | + |
| 21 | + inline given derivedMinuteGet: Get[Minute] = time.derivedMinuteGet |
| 22 | + inline given derivedMinutePut: Put[Minute] = time.derivedMinutePut |
| 23 | + |
| 24 | + inline given derivedSecondGet: Get[Second] = time.derivedSecondGet |
| 25 | + inline given derivedSecondPut: Put[Second] = time.derivedSecondPut |
| 26 | + |
| 27 | + inline given derivedMillisGet: Get[Millis] = time.derivedMillisGet |
| 28 | + inline given derivedMillisPut: Put[Millis] = time.derivedMillisPut |
| 29 | + |
| 30 | +} |
| 31 | +object time { |
| 32 | + |
| 33 | + given derivedMonthGet: Get[Month] = Get[Int].temap(Month.from) |
| 34 | + given derivedMonthPut: Put[Month] = Put[Int].contramap(_.value) |
| 35 | + |
| 36 | + given derivedDayGet: Get[Day] = Get[Int].temap(Day.from) |
| 37 | + given derivedDayPut: Put[Day] = Put[Int].contramap(_.value) |
| 38 | + |
| 39 | + given derivedHourGet: Get[Hour] = Get[Int].temap(Hour.from) |
| 40 | + given derivedHourPut: Put[Hour] = Put[Int].contramap(_.value) |
| 41 | + |
| 42 | + given derivedMinuteGet: Get[Minute] = Get[Int].temap(Minute.from) |
| 43 | + given derivedMinutePut: Put[Minute] = Put[Int].contramap(_.value) |
| 44 | + |
| 45 | + given derivedSecondGet: Get[Second] = Get[Int].temap(Second.from) |
| 46 | + given derivedSecondPut: Put[Second] = Put[Int].contramap(_.value) |
| 47 | + |
| 48 | + given derivedMillisGet: Get[Millis] = Get[Int].temap(Millis.from) |
| 49 | + given derivedMillisPut: Put[Millis] = Put[Int].contramap(_.value) |
| 50 | + |
| 51 | +} |
0 commit comments