Получить имена полей и значения из 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}
}

Я немного растерялся сейчас.

0 ответов

Другие вопросы по тегам