diff options
author | Zach Smith <zach@driver.xyz> | 2018-03-05 19:57:27 -0800 |
---|---|---|
committer | Zach Smith <zach@driver.xyz> | 2018-03-06 22:43:58 -0800 |
commit | 93b6eb324feacd2d52afcf8635a3d8e197f01f84 (patch) | |
tree | 33d0ea8ed0fb669d3b0b654ac87f9bcc0a40d94e /src/main/scala/xyz/driver/core/database/database.scala | |
parent | 575872b556eeb403147df9fe96b58236e0402050 (diff) | |
download | driver-core-93b6eb324feacd2d52afcf8635a3d8e197f01f84.tar.gz driver-core-93b6eb324feacd2d52afcf8635a3d8e197f01f84.tar.bz2 driver-core-93b6eb324feacd2d52afcf8635a3d8e197f01f84.zip |
Add StringId, LongId, and UuidId types to corezsmith/id-types
Diffstat (limited to 'src/main/scala/xyz/driver/core/database/database.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/database/database.scala | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/main/scala/xyz/driver/core/database/database.scala b/src/main/scala/xyz/driver/core/database/database.scala index ae06517..30adbf6 100644 --- a/src/main/scala/xyz/driver/core/database/database.scala +++ b/src/main/scala/xyz/driver/core/database/database.scala @@ -93,30 +93,30 @@ package database { } } - trait IdColumnTypes extends ColumnTypes { + trait IdColumnTypes[I[_] <: Id[_]] extends ColumnTypes { import profile.api._ - implicit def `xyz.driver.core.Id.columnType`[T]: BaseColumnType[Id[T]] + implicit def `xyz.driver.core.Id.columnType`[T]: BaseColumnType[I[T]] } object IdColumnTypes { - trait UUID extends IdColumnTypes { + trait UUID extends IdColumnTypes[UuidId] { import profile.api._ override implicit def `xyz.driver.core.Id.columnType`[T] = MappedColumnType - .base[Id[T], java.util.UUID](id => java.util.UUID.fromString(id.value), uuid => Id[T](uuid.toString)) + .base[UuidId[T], java.util.UUID](_.value, UuidId[T]) } - trait SerialId extends IdColumnTypes { + trait SerialId extends IdColumnTypes[LongId] { import profile.api._ override implicit def `xyz.driver.core.Id.columnType`[T] = - MappedColumnType.base[Id[T], Long](_.value.toLong, serialId => Id[T](serialId.toString)) + MappedColumnType.base[LongId[T], Long](_.value, LongId[T]) } - trait NaturalId extends IdColumnTypes { + trait NaturalId extends IdColumnTypes[StringId] { import profile.api._ override implicit def `xyz.driver.core.Id.columnType`[T] = - MappedColumnType.base[Id[T], String](_.value, Id[T]) + MappedColumnType.base[StringId[T], String](_.value, StringId[T]) } } @@ -146,11 +146,9 @@ package database { trait KeyMappers extends ColumnTypes { import profile.api._ - def uuidKeyMapper[T] = - MappedColumnType - .base[Id[T], java.util.UUID](id => java.util.UUID.fromString(id.value), uuid => Id[T](uuid.toString)) - def serialKeyMapper[T] = MappedColumnType.base[Id[T], Long](_.value.toLong, serialId => Id[T](serialId.toString)) - def naturalKeyMapper[T] = MappedColumnType.base[Id[T], String](_.value, Id[T]) + def uuidKeyMapper[T] = MappedColumnType.base[UuidId[T], java.util.UUID](_.value, UuidId[T]) + def serialKeyMapper[T] = MappedColumnType.base[LongId[T], Long](_.value, LongId[T]) + def naturalKeyMapper[T] = MappedColumnType.base[StringId[T], String](_.value, StringId[T]) } trait DatabaseObject extends ColumnTypes { |