System.OsString.Encoding.Internal

os-string-2.0.2.1: Library for manipulating Operating system strings.

Safe Haskell | None
Language | Haskell2010

System.OsString.Encoding.Internal

Synopsis

- ucs2le :: TextEncoding
- mkUcs2le :: CodingFailureMode -> TextEncoding
- ucs2le_DF :: CodingFailureMode -> IO (TextDecoder ())
- ucs2le_EF :: CodingFailureMode -> IO (TextEncoder ())
- ucs2le_decode :: DecodeBuffer
- ucs2le_encode :: EncodeBuffer
- utf16le_b :: TextEncoding
- mkUTF16le_b :: CodingFailureMode -> TextEncoding
- utf16le_b_DF :: CodingFailureMode -> IO (TextDecoder ())
- utf16le_b_EF :: CodingFailureMode -> IO (TextEncoder ())
- utf16le_b_decode :: DecodeBuffer
- utf16le_b_encode :: EncodeBuffer
- cWcharsToChars_UCS2 :: [Word16] -> [Char]
- cWcharsToChars :: [Word16] -> [Char]
- charsToCWchars :: [Char] -> [Word16]
- withWindowsString :: String -> (Int -> Ptr Word16 -> IO a) -> IO a
- peekWindowsString :: (Ptr Word16, Int) -> IO String
- withPosixString :: String -> (CStringLen -> IO a) -> IO a
- peekPosixString :: CStringLen -> IO String
- decodeWithTE :: TextEncoding -> ShortByteString -> Either EncodingException String
- encodeWithTE :: TextEncoding -> String -> Either EncodingException ShortByteString
- decodeWithBasePosix :: ShortByteString -> IO String
- encodeWithBasePosix :: String -> IO ShortByteString
- decodeWithBaseWindows :: ShortByteString -> IO String
- encodeWithBaseWindows :: String -> IO ShortByteString
- data EncodingException = EncodingError String (Maybe Word8)
- showEncodingException :: EncodingException -> String
- wNUL :: Word16

# Documentation

ucs2le :: TextEncoding #

mkUcs2le :: CodingFailureMode -> TextEncoding #

ucs2le_DF :: CodingFailureMode -> IO (TextDecoder ()) #

ucs2le_EF :: CodingFailureMode -> IO (TextEncoder ()) #

ucs2le_decode :: DecodeBuffer #

ucs2le_encode :: EncodeBuffer #

utf16le_b :: TextEncoding #

Mimics the base encoding for filesystem operations. This should be total on all inputs (word16 byte arrays).

Note that this has a subtle difference to `encodeWithBaseWindows`/`decodeWithBaseWindows`: it doesn't care for the `0x0000` end marker and will as such produce different results. Use `takeWhile (/= 'NUL')` on the input to recover this behavior.

mkUTF16le_b :: CodingFailureMode -> TextEncoding #

utf16le_b_DF :: CodingFailureMode -> IO (TextDecoder ()) #

utf16le_b_EF :: CodingFailureMode -> IO (TextEncoder ()) #

utf16le_b_decode :: DecodeBuffer #

utf16le_b_encode :: EncodeBuffer #

cWcharsToChars_UCS2 :: [Word16] -> [Char] #

cWcharsToChars :: [Word16] -> [Char] #

charsToCWchars :: [Char] -> [Word16] #

withWindowsString :: String -> (Int -> Ptr Word16 -> IO a) -> IO a #

peekWindowsString :: (Ptr Word16, Int) -> IO String #

withPosixString :: String -> (CStringLen -> IO a) -> IO a #

peekPosixString :: CStringLen -> IO String #

decodeWithTE :: TextEncoding -> ShortByteString -> Either EncodingException String #

Decode with the given `TextEncoding`.

encodeWithTE :: TextEncoding -> String -> Either EncodingException ShortByteString #

Encode with the given `TextEncoding`.

decodeWithBasePosix :: ShortByteString -> IO String #

This mimics the filepath decoder base uses on unix, with the small distinction that we're not truncating at NUL bytes (because we're not at the outer FFI layer).

encodeWithBasePosix :: String -> IO ShortByteString #

This mimics the filepath dencoder base uses on unix, with the small distinction that we're not truncating at NUL bytes (because we're not at the outer FFI layer).

decodeWithBaseWindows :: ShortByteString -> IO String #

This mimics the filepath decoder base uses on windows, with the small distinction that we're not truncating at NUL bytes (because we're not at the outer FFI layer).

encodeWithBaseWindows :: String -> IO ShortByteString #

This mimics the filepath dencoder base uses on windows, with the small distinction that we're not truncating at NUL bytes (because we're not at the outer FFI layer).

data EncodingException #

Constructors

EncodingError String (Maybe Word8) | Could not decode a byte sequence because it was invalid under the given encoding, or ran out of input in mid-decode.

#### Instances

Instances details

Exception EncodingException # |
Instance details Defined in System.OsString.Encoding.Internal Methods toException :: EncodingException -> SomeException # fromException :: SomeException -> Maybe EncodingException # displayException :: EncodingException -> String #
Show EncodingException # |
Instance details Defined in System.OsString.Encoding.Internal Methods showsPrec :: Int -> EncodingException -> ShowS # show :: EncodingException -> String # showList :: [EncodingException] -> ShowS #
NFData EncodingException # |
Instance details Defined in System.OsString.Encoding.Internal Methods rnf :: EncodingException -> () #
Eq EncodingException # |
Instance details Defined in System.OsString.Encoding.Internal Methods (==) :: EncodingException -> EncodingException -> Bool # (/=) :: EncodingException -> EncodingException -> Bool #

showEncodingException :: EncodingException -> String #

wNUL :: Word16 #