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)
}