Получить имена полей и значения из LablelledGenerics класса case
Я пытаюсь иметь Seq[String], содержащий имена полей класса case И еще Seq[String], содержащий значения класса case. В общем. Я думаю, что мне придется отображать значения с помощью функции Poly1, чтобы иметь произвольный тип => String.
Но сейчас я не могу извлечь ключи и значения из LabelledGenerics.
def apply[T,R <: HList](value : T)(implicit gen: LabelledGeneric.Aux[T, R],
keys : Keys[R],
valuesR : Values[R]
) {
val hl = gen.to(value)
val keys = hl.keys ...
val values = hl.values.map ...
}
Я не уверен, должен ли я запрашивать неявные ключи и значения или возможно ли это получить из LabelledGeneric.
Я попытался сопоставить следующие Poly над ключами, чтобы получить список строк. Но, кажется, ключи не являются свидетелями
object PolyWitnesToString extends Poly1 {
implicit def witnessCase = at[Witness]{ w => w.toString}
}
Я немного растерялся сейчас.