Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- newtype ManagedCString = ManagedCString ByteArray
- terminated :: ManagedCString -> Bytes
- terminatedU :: ManagedCString -> ByteArray
- unterminated :: ManagedCString -> Bytes
- fromBytes :: Bytes -> ManagedCString
- fromLatinString :: String -> ManagedCString
- fromShortText :: ShortText -> ManagedCString
- pinnedFromBytes :: Bytes -> ManagedCString
- pin :: ManagedCString -> ManagedCString
- touch :: ManagedCString -> IO ()
- contents :: ManagedCString -> CString
Documentation
newtype ManagedCString Source #
An unsliced byte sequence with NUL
as the final byte.
Instances
IsString ManagedCString Source # | |
Defined in Foreign.C.String.Managed fromString :: String -> ManagedCString # | |
Monoid ManagedCString Source # | |
Defined in Foreign.C.String.Managed mappend :: ManagedCString -> ManagedCString -> ManagedCString # mconcat :: [ManagedCString] -> ManagedCString # | |
Semigroup ManagedCString Source # | |
Defined in Foreign.C.String.Managed (<>) :: ManagedCString -> ManagedCString -> ManagedCString # sconcat :: NonEmpty ManagedCString -> ManagedCString # stimes :: Integral b => b -> ManagedCString -> ManagedCString # | |
Show ManagedCString Source # | |
Defined in Foreign.C.String.Managed showsPrec :: Int -> ManagedCString -> ShowS # show :: ManagedCString -> String # showList :: [ManagedCString] -> ShowS # | |
Eq ManagedCString Source # | |
Defined in Foreign.C.String.Managed (==) :: ManagedCString -> ManagedCString -> Bool # (/=) :: ManagedCString -> ManagedCString -> Bool # |
terminated :: ManagedCString -> Bytes Source #
unterminated :: ManagedCString -> Bytes Source #
fromBytes :: Bytes -> ManagedCString Source #
Copies the slice, appending a NUL
byte to the end.
fromLatinString :: String -> ManagedCString Source #
Convert a String
consisting of only characters representable
by ISO-8859-1. These are encoded with ISO-8859-1. Any character
with a codepoint above U+00FF
is replaced by an unspecified byte.
pinnedFromBytes :: Bytes -> ManagedCString Source #
Copies the slice into pinned memory, appending a NUL
byte to the end.
pin :: ManagedCString -> ManagedCString Source #
touch :: ManagedCString -> IO () Source #
contents :: ManagedCString -> CString Source #
Get a pointer to the payload of the managed C string. The behavior is undefined if the argument is not pinned.