All Downloads are FREE. Search and download functionalities are using the official Maven repository.

enumeratum.DoobieEnum.scala Maven / Gradle / Ivy

There is a newer version: 1.7.7
Show newest version
package enumeratum

import doobie.util._
import doobie.Meta

/** Helper trait that adds implicit Doobie Get and Put for an [[Enum]] 's members
  *
  * Example:
  *
  * {{{
  * scala> import enumeratum._
  * scala> import doobie._
  * scala> import doobie.implicits._
  *
  * scala> sealed trait ShirtSize extends EnumEntry
  * scala> case object ShirtSize extends Enum[ShirtSize] with DoobieEnum[ShirtSize] {
  *     |  case object Small  extends ShirtSize
  *     |  case object Medium extends ShirtSize
  *     |  case object Large  extends ShirtSize
  *     |  val values = findValues
  *     | }
  *
  * scala> case class Shirt(size: ShirtSize)
  *
  * scala> sql"select size from Shirt".query[Shirt].to[List]
  * }}}
  */
trait DoobieEnum[A <: EnumEntry] { this: Enum[A] =>

  implicit lazy val enumMeta: Meta[A] = Doobie.meta(this)

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy