Ich habe folgende auf Filter:Scala: Wie Shapless hList basierend auf Labels
sealed trait baseData {
def weight: Int
def priority: Int
}
sealed trait moreData {
def weight: Int
def priority: Int
def t: String
def id: String
}
case class data1(override val weight: Int, override val priority: Int) extends baseData
case class moreData1 (override val weight:Int, override val priority: Int, override val t: String, override val id: String)extends moreData
Und bin Erzeugung HLists aus den Fallklassen als solche:
val h1 = LabelledGeneric[data1].to(data1(1,2))
val h2 = LabelledGeneric[moreData1].to(moreData1(3,4,"a","b"))
Wie kann ich trimmen oder Filter h2
so dass es nur Felder enthält, die in h1
vorhanden sind? Ich spüre, ich brauche etwas von der Art val filtered = h2.foldRight(HNil)(keepFunc)
, aber ich konnte nicht herausfinden, wie man keepFunc
schreibt. Irgendwelche Ideen?