У меня есть следующий класс case:
case class PropositionContent(title:String,content:String)
И я хотел бы представить частичную модификацию его как Data.
Один из способов - создать класс case:
case class PartialPropositionContent(title:Option[String],content:Option[String)
а затем некоторые методы:
object PropositionContent {
def append( pc : PropositionContent
, ppc : PartialPropositionContent) =
PropositionContent ( ppc.title.getOrElse(pc.title)
, ppc.content.getOrElse(pc.content) )
def append( ppc : PartialPropositionContent
, ppc2 : PartialPropositionContent ): PartialPropositionContent = {...}
}
Но это немного котельная!
Я думаю, что case class PropositionContent[M[_]](title:M[String],content:M[String])
не решит проблему, и я не знаю, как использовать Shapeless для решения этой проблемы.
У вас есть идея?