Sebastien Lorber
Sebastien Lorber

Reputation: 92140

Create common trait for all case classes supporting copy(id=newId) method

I'm trying to do something like that:

trait IdentifiableModel[T] {
  self: { def copy(id: ObjectId): T } =>

  val id: ObjectId
}

I've found some other related questions trying to do similar things but they didn't really answer to this question. In my case, I'm trying to copy the case class subclasses of IdentifiableModel that all share an id value

Upvotes: 7

Views: 2231

Answers (1)

Sebastien Lorber
Sebastien Lorber

Reputation: 92140

Travis Brown has the good answer but didn't reply.

He uses Scala macros: Howto model named parameters in method invocations with Scala macros?

Upvotes: 1

Related Questions