scala - metatags - meta tags seo
Extraer valores de etiqueta de una instancia de LabelledGeneric (1)
Puede obtener las claves del registro (como Symbol
s) a través de shapeless.ops.record.Keys
.
Esta
import shapeless._
import shapeless.ops.record._
case class Foo(bar: String, baz: Boolean)
val labl = LabelledGeneric[Foo]
val keys = Keys[labl.Repr].apply
println(keys)
println(keys.toList.map(_.name))
resultados en
''bar :: ''baz :: HNil
List(bar, baz) : List(String)
Considere el siguiente ejemplo:
import shapeless._
case class Foo(bar: String, baz: Boolean)
val labl = LabelledGeneric[Foo]
Ahora, el tipo de labl
es (prettified)
LabelledGeneric[Foo] {
type Repr =
FieldType[Symbol @@ String("bar"), String] ::
FieldType[Symbol @@ String("baz"), Boolean] ::
HNil
}
que ya transmite la información que necesito, es decir, los nombres de los campos de clase de caso.
Lo que busco es una forma de pasar de labl
a algo labl
a
"bar" :: "baz" :: HNil
es decir, materializar la información contenida en los tipos singleton en un valor.
es posible? Podría usar una macro, pero creo que terminaría reescribiendo algo muy similar al objeto GenericMacros
en un GenericMacros
sin forma, así que me pregunto si puedo aprovecharla directamente.