def apply[T]()

in shared/src/main/scala/magnolify/shared/EnumType.scala [43:67]


  def apply[T](implicit et: EnumType[T]): EnumType[T] = et
  def apply[T](cm: CaseMapper)(implicit et: EnumType[T]): EnumType[T] = et.map(cm)

  def create[T](
    _name: String,
    _namespace: String,
    _values: List[String],
    _annotations: List[Any],
    f: String => T
  ): EnumType[T] = new EnumType[T] {

    @transient private lazy val fMap =
      _values.map(v => v -> f(v)).toMap

    @transient private lazy val gMap =
      _values.map(v => f(v) -> v).toMap

    override val name: String = _name
    override val namespace: String = _namespace
    override val values: List[String] = _values
    override val valueSet: Set[String] = _values.toSet
    override val annotations: List[Any] = _annotations
    override def from(v: String): T = fMap(v)
    override def to(v: T): String = gMap(v)
  }