Пользовательский писатель / читатель в upickle больше не работает после обновления до 0.7.1
У меня есть свой собственный класс DateTime, для которого я написал следующий пользовательский писатель и читатель:
val dtWriter = Writer[DateTime]{
case t => Js.Str(format(t))
}
val dtReader = Reader[DateTime]{
case Js.Str(time) =>
try {
parse(time)
}
catch {
case _: Exception =>
SDateTime(0)
}
}
Однако я попытался обновить версию пакета с 0.4.4 до 0.7.1, и этот код больше не компилируется, что выдает мне следующие ошибки:
Ошибка:(7, 8) объект Js не является членом пакета upickle
импорт upickle.Js
Ошибка:(112, 23) объект Writer не принимает параметры типа.
val dtWriter = Writer [DateTime] {
Как это следует переписать в последней версии upickle?
1 ответ
Решение
Основано только на чтении http://www.lihaoyi.com/upickle/:
val dtRW = readwriter[String].bimap[DateTime](
t => format(t), // also `format _` or just `format` should work
time =>
try {
parse(time)
}
catch {
case _: Exception =>
SDateTime(0)
}
)