in core/src/main/scala/com/gu/marley/AvroSerialisable.scala [138:156]
def writableValue(t: $typ) = valueMap(t)
val readMap = Map($listMethod.map(x =>
com.gu.marley.enumsymbols.SnakesOnACamel.toSnake(x.name) -> x
): _*)
def read(x: Any) = readMap(x.toString)
}
"""
}
def structMacro[T: c.WeakTypeTag]: Tree = {
val typ = weakTypeOf[T]
val apply = typ.dealias.companion.decls.find(_.name == TermName("apply")).getOrElse(
c.abort(c.enclosingPosition, s"Expected the companion object of ${typ.dealias} to have an 'apply' method")
)
val fields = for {