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

org.virtuslab.ideprobe.Id.scala Maven / Gradle / Ivy

There is a newer version: 0.53.0
Show newest version
package org.virtuslab.ideprobe

import com.typesafe.config.ConfigValueFactory
import pureconfig.ConfigCursor
import pureconfig.ConfigReader
import pureconfig.ConfigWriter

sealed trait Id
object Id {
  def apply(name: String): Id = Symbolic(name.toLowerCase)

  final case class Symbolic(name: String) extends Id

  implicit val idReader: ConfigReader[Id] = {
    case cursor: ConfigCursor => cursor.asString.map(Id.apply)
  }

  implicit val idWriter: ConfigWriter[Id] = {
    case Symbolic(name) => ConfigValueFactory.fromAnyRef(name)
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy