From bb7e18fe7998556086863acc0957056079363d4a Mon Sep 17 00:00:00 2001 From: Stewart Stewart Date: Sat, 17 Dec 2016 01:39:12 -0500 Subject: use core.tagging for months --- src/main/scala/xyz/driver/core/core.scala | 5 +++++ src/main/scala/xyz/driver/core/date.scala | 8 +++----- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'src/main/scala/xyz') diff --git a/src/main/scala/xyz/driver/core/core.scala b/src/main/scala/xyz/driver/core/core.scala index 8ae9122..2b61689 100644 --- a/src/main/scala/xyz/driver/core/core.scala +++ b/src/main/scala/xyz/driver/core/core.scala @@ -20,6 +20,11 @@ package object core { resource.close() } } + + object tagging { + private[core] trait Tagged[+V, +Tag] + } + type @@[+V, +Tag] = V with tagging.Tagged[V, Tag] } package core { diff --git a/src/main/scala/xyz/driver/core/date.scala b/src/main/scala/xyz/driver/core/date.scala index 05d139d..b423585 100644 --- a/src/main/scala/xyz/driver/core/date.scala +++ b/src/main/scala/xyz/driver/core/date.scala @@ -2,12 +2,10 @@ package xyz.driver.core import java.util.Calendar -import scalaz.{@@, Tag} - object date { type Month = Int @@ Month.type - private[date] def tagMonth(value: Int): Month = Tag.of[Month.type](value) + private[date] def tagMonth(value: Int): Month = value.asInstanceOf[Month] object Month { val JANUARY = tagMonth(Calendar.JANUARY) @@ -24,12 +22,12 @@ object date { } final case class Date(year: Int, month: Month, day: Int) { - def iso8601: String = f"$year%04d-${Tag.unwrap(month) + 1}%02d-$day%02d" + def iso8601: String = f"$year%04d-${month + 1}%02d-$day%02d" def toJavaSqlDate = new java.sql.Date(toJavaDate.getTime) def toJavaDate: java.util.Date = { val cal = Calendar.getInstance() cal.set(Calendar.YEAR, year - 1900) - cal.set(Calendar.MONTH, Tag.unwrap(month)) + cal.set(Calendar.MONTH, month) cal.set(Calendar.DAY_OF_MONTH, day) cal.getTime } -- cgit v1.2.3