Пользовательский писатель / читатель в upickle больше не работает после обновления до 0.7.1 - PullRequest
0 голосов
/ 24 января 2019

У меня есть свой собственный класс 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

import upickle.Js

Ошибка: (112, 23) объект Writer не принимает параметры типа.

val dtWriter = Writer [DateTime] {

Как это следует переписать в последней версии upickle?

1 Ответ

0 голосов
/ 25 января 2019

На основании только чтения http://www.lihaoyi.com/upickle/#CustomPicklers:

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)
    }
)
...