[英]How can you best offer a generic interface on bytestrings?
我想為我正在編寫的庫提供“用戶友好”的通用接口。 這似乎應該已經存在,所以我不想重新發明輪子。
在它的核心,庫是很多C函數的包裝器,它們采用unsigned char[]
。 現在我正在使用vector
因為很容易理解如何使用Mutable
來分配和freeze
由庫寫入的C數組,但更流行的接口是ByteString
。 有透明轉換它們的好方法嗎? 和/或為它們提供通用接口的好方法?
作為一個例子,我希望能夠編寫一個函數
doIt :: ByteArrayLike ba => ba -> ba
並使它在ByteString
和Vector Word8
相同。
我不確定你想要什么樣的操作ByteString
和Vector
,但你可以看一下lens
包,它提供了兩者的通用操作。
也許為Vector
實現一個IsByteString
實例? 看到這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.