io.youi.Macros.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of youi-macros_sjs0.6_2.13 Show documentation
Show all versions of youi-macros_sjs0.6_2.13 Show documentation
Dependency for internal Macro functionality
The newest version!
package io.youi
import scala.annotation.compileTimeOnly
import scala.language.experimental.macros
import scala.reflect.macros.blackbox
@compileTimeOnly("Enable compile-time Macros for expansion")
object Macros {
def named(c: blackbox.Context)(value: c.Tree): c.Tree = {
import c.universe._
val fieldName = c.internal.enclosingOwner.name.decodedName.toString.trim
q"""
io.youi.NamedValues.register(${c.prefix.tree}, $fieldName, $value)
$value
"""
}
}