Как сериализовать классы общего случая с помощью µPickle? - PullRequest
1 голос
/ 06 мая 2019

Документы µPickle говорят, что универсальные классы дел могут быть сериализованы:

Из коробки uPickle поддерживает запись и чтение следующих типов:

  • Автономные case class es и case object s и их общие эквиваленты,

Однако пример не приведен, и я до сих пор не смог найти правильный путь.Моя попытка:

import upickle.default._

object Container {
  implicit def rw[T]: ReadWriter[Container[T]] = macroRW
}
case class Container[T](value: T)

object Main extends App {
  val c = new Container(0)

  val cString = write(c)
  println("c " + cString)
}

Сбой при ошибке:

Ошибка: (7, 50) не удалось найти неявное значение для параметра e:

upickle.default.Reader [T]

неявное def rw [T]: ReadWriter [Container [T]] = macroRW

Как следует обобщать классы универсальных вариантов с помощью µPickle?

1 Ответ

3 голосов
/ 06 мая 2019

Не забудьте использовать привязку к контексту

implicit def rw[T: ReadWriter]: ReadWriter[Container[T]] = macroRW
...