相关疑难解决方法(0)

是否有任何希望将ForeignPtr转换为ByteArray#(对于函数:: ByteString - > Vector)

出于性能原因,我希望将ByteString(严格的,现在的)零拷贝演绎到a Vector.由于Vector只是ByteArray#在引擎盖下,并ByteStringForeignPtr这可能看起来是这样的:

caseBStoVector :: ByteString -> Vector a
caseBStoVector (BS fptr off len) =
    withForeignPtr fptr $ \ptr -> do
        let ptr' = plusPtr ptr off
            p = alignPtr ptr' (alignment (undefined :: a))
            barr = ptrToByteArray# p len  -- I want this function, or something similar 
            barr' = ByteArray barr
            alignI = minusPtr p ptr
            size = (len-alignI) `div` sizeOf (undefined :: a)
        return (Vector 0 size barr') …
Run Code Online (Sandbox Code Playgroud)

haskell ghc

10
推荐指数
1
解决办法
984
查看次数

标签 统计

ghc ×1

haskell ×1