我想为我正在编写的库提供一个“用户友好”的通用界面。这似乎是应该已经存在的东西,所以我不想重新发明轮子。
本质上,该库是许多采用 unsigned char[]
的 C 函数的包装器。现在我正在使用vector
,因为很容易理解如何使用Mutable
来分配和卡住
由库编写的C数组,但更流行的接口(interface)是ByteString
。有没有好的方法可以透明地转换它们?和/或为它们提供通用接口(interface)的好方法?
举个例子,我希望能够编写一个函数
doIt :: ByteArrayLike ba => ba -> ba
并使其对 ByteString
和 Vector Word8
进行相同的操作。
最佳答案
我不确定您想要对 ByteString
和 Vector
进行什么样的操作,但您可以查看 lens
包,它提供了对两者的通用操作。
也许可以为 Vector
实现一个 IsByteString
实例?请参阅here
关于haskell - 如何最好地提供字节串上的通用接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17010031/