我正在尝试创建自定义Writer,用于将shapeless.HList转换为简单数组,而不是复杂的嵌套对象。
但我无法提供足够的具体证据--它可以用我的poly映射
我有这样的代码:
import upickle.Js
import upickle.default._
import shapeless._
import poly._
import shapeless.ops.hlist.{ToTraversable, Mapper}
object writeItem extends Poly1 {
implicit def item[I](implicit w: Writer[I]) = at[I](w.write)(writer.write)
}
implicit def hListWriter[L <: HList, Mappr <: Mapper[writeItem.type, L] ]
(implicit mapper: Mappr,
trav: ToTraversable.Aux[Mappr#Out, List, Js.Value]) = Writer[L] {
l => Js.Arr(l.map(writeItem).toList[Js.Value]:_*)
}和编译错误:
找不到参数
toTraversableAux: shapeless.ops.hlist.ToTraversable.Aux[mapper.Out,List,upickle.Js.Value]的隐式值
如何定义函数通过HList将List转换为统一的map
发布于 2015-07-22 07:56:25
为此,我发现已经有了Mapper.Aux,由此产生的methid定义如下所示:
implicit def hListWriter[L <: HList, Out <: HList]
(implicit mapper: Mapper.Aux[writeItem.type, L, Out],
trav: ToTraversable.Aux[Out, List, Js.Value]) = Writer[L] {
l => Js.Arr(l.map(writeItem).toList[Js.Value]:_*)https://stackoverflow.com/questions/31556958
复制相似问题