derive-macroshelp wantedimprovement
Metriche repository
- Star
- (1961 stelle)
- Metriche merge PR
- (Merge medio 8g 15h) (4 PR mergiate in 30 g)
Descrizione
It would be cool if they were supported out of the box. Otherwise you could easily add something like this
/**
* To be used similar to sangria derivation macros (though this is not a macro), e.g.
*
* // Java
* public enum JavaEnum { A, B }
*
* // Scala
* val GJavaEnum = deriveEnumTypeFromJavaEnumeration[JavaEnum]()
*/
def deriveEnumTypeFromJavaEnumeration[A](name: String = null)(implicit ev: ClassTag[A]): EnumType[A] = {
val javaEnumClass = ev.runtimeClass.asInstanceOf[Class[A]]
EnumType(if(name == null) javaEnumClass.getSimpleName else name,
values = javaEnumClass.getEnumConstants.map(value => EnumValue(value.toString, value = value)).toList)
}