1
я следующее:Scala: Как фильтр Shapless HList основан на наклейках
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
И я генерации HLists из классов случаев, как, например:
val h1 = LabelledGeneric[data1].to(data1(1,2))
val h2 = LabelledGeneric[moreData1].to(moreData1(3,4,"a","b"))
Как можно обрезать или фильтровать h2
так что он содержит только поля, присутствующие в h1
? Я чувствую, что мне нужно что-то вроде val filtered = h2.foldRight(HNil)(keepFunc)
, но не смогли выяснить, как писать keepFunc
. Есть идеи?