对于“大”编解码器,当直接从HList
s 创建编解码器并应用.dropUnits
( ignore(6) ::
uint(2) ::
uint(30) ::
int(4) ::
int(8) ::
uint(10) ::
bool(1) ::
int(28) ::
int(27) ::
uint(12) ::
uint(9) ::
uint(6) ::
int(2) ::
ignore(3) ::
bool(1) ::
uint(19)
).dropUnits.as[SomeBigCaseClass]
创建编解码器似乎要快得多~
,然后.hlist
像这样应用:
( ignore(6) ~
uint(2) ~
...
).hlist.dropUnits.as[SomeBigCaseClass]
但这似乎行不通。
Could not prove that this.Out can be converted to/from reports.SomeBigCaseClass.
).hlist.dropUnits.as[SomeBigCaseClass]
^
我发现的最简单的解决方案对我来说已经足够好了,就是省略Unit
内联值。
( (ignore(6) dropLeft
uint(2)) ::
...
).as[SomeBigCaseClass]
对于有许多忽略的编解码器,此功能将非常受欢迎。我究竟做错了什么?我完全错过了重点.hlist
吗?