0 | module System.UV.Pointer
4 | import Data.Buffer.Indexed
5 | import Data.ByteString
7 | import System.UV.Util
9 | import public System.UV.Raw.Pointer
14 | Resource (Ptr Bits8) where
18 | Resource (Ptr Char) where
28 | toByteString : HasIO io => Ptr Bits8 -> Bits32 -> io ByteString
29 | toByteString p x = do
31 | copyToBuffer p buf x
32 | pure $
unsafeByteString (cast x) buf
35 | bufToByteString : HasIO io => Ptr Buf -> Bits32 -> io ByteString
36 | bufToByteString p x = getBufBase p >>= \y => toByteString y x
41 | toString : HasIO io => Ptr Bits8 -> Bits32 -> io String
42 | toString p s = toString <$> toByteString p s
46 | fromByteString : HasIO io => ByteString -> io (Ptr Bits8)
47 | fromByteString (BS s (BV b o _)) =
48 | copyFromBuffer (unsafeGetBuffer b) (cast s) (cast o)
52 | fromString : HasIO io => String -> io (Ptr Bits8)
53 | fromString = fromByteString . fromString