Существует ли идиоматический способ генерации чего-то вроде fromString
метода на sealed trait
для использования с case classes
?
Например, что-то вроде:
sealed trait ExampleEnum {def id: Any}
final case class One(first: String) extends ExampleEnum{ override def id = first}
final case class Two(first: String, second: String) extends ExampleEnum { override def id = (first, second) }
Где должен существовать def fromString(s: String): ExampleEnum
? Компаньон object
для sealed trait
? Что-то другое? Такое ощущение, что этот шаблон «десериализации» будет чем-то существующим или имеет стандартный подход, который можно найти в существующих пакетах.