gpt4 book ai didi

haskell - 如何将 Data.ByteString.Char8 转换为 Data.ByteString.Lazy 以在 Data.Binary.Get 中使用?

转载 作者:行者123 更新时间:2023-12-03 07:05:26 26 4
gpt4 key购买 nike

我正在将包从使用 GHC.IO.Handle 进行网络转换为 Network.Connection.Connection。痛点之一是 Data.ByteString.Lazy.ByteString 更改为 Data.ByteString.Char8.ByteString 的位置数量。

示例函数是:

import qualified Data.ByteString.Lazy as BL

-- gets the size of the frame
-- the bytestring should be at least 7 bytes long, otherwise this method will fail
peekFrameSize :: BL.ByteString -> PayloadSize
peekFrameSize = runGet f
where
f = do
void $ getWord8 -- 1 byte
void $ (get :: Get ChannelID) -- 2 bytes
get :: Get PayloadSize -- 4 bytes

如何将 Data.ByteString.Char8.ByteString 转换为 Data.ByteString.Lazy.ByteString 以在 Data.Binary.Get 中使用>?

最佳答案

首先,Data.ByteString.Char8 是一个模块,而不是类型。与 Data.ByteString.Lazy 相同。也就是说,假设显而易见,请注意 Data.ByteString.Char8.ByteString 实际上是 Data.ByteString.ByteString 的重新导出。因此,您所需要的只是 Mikail Glushenkov 提到的 fromStrict 函数。

关于haskell - 如何将 Data.ByteString.Char8 转换为 Data.ByteString.Lazy 以在 Data.Binary.Get 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20277773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com