hlistа те филды которые аннотированы игнором? RemoveAll вроде, но у меня не получается сделать ему лист который надо ремувить...
Типа имея case class Foo(a: String, @ignore b: Int, c: List[Zalupa]) хочу получить из String :: Int :: List[Zalupa] :: HNil только String :: List[Zalupa] :: HNil. Можно так?
object ignoreAnnotated extends Poly1 { implicit def caseSome[T] = at[(T, Some[ignore])] { case (_, _) => HNil } implicit def caseNone[T] = at[(T, None.type)] { case (f, _) => f :: HNil } } val anns = Annotations[ignore, Foo].apply() val gen = Generic[Foo] gen.to(foo).zip(anns).flatMap(ignoreAnnotated) Я не специалист по шляплессу, но должно сработать.
Не писал но обсуждаю.
Шоб ты был сдароф, вроде подходит!
В скасти научится пора
Обсуждают сегодня