将上下文值传递给Circe解码器?

时间:2018-07-26 09:16:26

标签: circe

我正在使用Akka Streams和多个线程对JSON数据进行循环解码。在某些情况下,我想注销意外数据的警告(但让它通过,而不是引发异常)。如何将更高级别的产品ID附加到这些消息?

case class A(
  productID: String,
  b: B
)

object A {
  case class B(x: Int) {
    if (x > 500000) logger.warn(s"[$productId]: x over the top: $x"
  }
}

传递上下文可以在我称为decode的顶层完成。我隐约记得曾经见过这样的系统,但一定是错误的。 Circe的来源或文档中都没有提及。

线程局部变量可能会起作用(解码发生在一个线程内)。那是唯一的方法吗?

使用大约0.9.3

0 个答案:

没有答案