3

我想为我正在编写的库提供一个“用户友好”的通用界面。看起来应该已经存在的东西,所以我不想重新发明轮子。

从本质上讲,该库是许多 C 函数的包装器,它们采用unsigned char[]. 现在我正在使用vector,因为它很容易理解如何使用Mutable来分配和freeze由库编写的 C 数组,但更流行的接口是ByteString. 有没有一种透明地转换它们的好方法?和/或为他们两个提供通用接口的好方法?

例如,我希望能够编写一个函数

doIt :: ByteArrayLike ba => ba -> ba

ByteString并让它以Vector Word8相同的方式运行。

4

1 回答 1

1

我不确定你想要什么样的操作ByteStringVector,但你可以看看lens包,它提供了对两者的通用操作。

也许实现一个IsByteString实例Vector?看这里

于 2013-07-12T19:54:12.103 回答