说起来,要是想让 bin.pat.Pattern 架构支持静态长度写入,还得专门再加一个计算长度的操作,这样必须修改所有 Pattern 实现。
其实我没太大办法解决 Repeat(sizer, item); array(init, sizer); sizer.sizedByteArray 不对称的问题
其实我没太大办法解决 Repeat(sizer, item); array(init, sizer); sizer.sizedByteArray 不对称的问题
Forwarded from dnaugsuz
是一个 Kotlin Common 二进制纯流式序列化库,采用的底层字节读写算法类似 JDK DataInput/Output Stream实现
Forwarded from dnaugsuz
完全有能力写一个 Java ClassFile streamer
支持 byte order、bit flags、contextual、offset、alignment 什么的
支持 byte order、bit flags、contextual、offset、alignment 什么的
其实也不是没优化可能,ConstantInfo 现在更类似于一个 union 结构体,我可以把它弄成 tagged union(这里就是面向对象子类型啦)的形式
如果这些 Cond 包含的子 pattern,都提供一个 flag 让 pattern 能够总结出一个 map 和对应的 revMap,就不需要这个碍眼的 Pair<Int, T> 存储 caseNo 了,可以直接放在面向对象的多态支持里,明天考虑改这个
其实我本来也不该滥用 AnyTuple/AnySeq 组合的,它们就是 C
union 的模式,不够精确也对优化和使用不友好,应该利用编程语言自己的子类型多态,尽可能细化数据类型。